2016-08-09 50 views
0

Wie in Rendering bereits vorhandene Skripts in DOM in Yii2Wie auszuschließen in DOM in Yii2 vorhandenen Skript-Rendering

Welche Methode (machen oder renderAjax etc.) i mehr Rendering eines auszuschließen verwenden müssen die auszuschließen sind (die gleiche) jquery, jquery.ui

Ich habe jquery.js auf meiner Seite. Und ich (über Ajax) laden auf meiner Seite modales Fenster der Registrierung, die jquery.js benötigt, und es jquery.js zum zweiten Mal zieht.

Und im Ergebnis enthält meine Seite 2 jquery.js Bibliothek. Und irgendwo fängt Fehler an. Ich möchte es beheben, indem remoeving enother jquery.js

+0

Können Sie uns ein Beispiel geben, was Sie erreichen möchten? – Bizley

+0

@Bizley, ich habe 'jquery.js' auf meiner Seite. Und ich (über Ajax) laden auf meiner Seite modales Fenster der Registrierung, die 'jquery.js' erfordert, und es zieht' jquery.js' zum zweiten Mal. Und im Ergebnis enthält meine Seite 2 'jquery.js' Bibliothek. Und irgendwo fängt Fehler an. Ich möchte es beheben, indem Sie enother "jquery.js" entfernen – Link

Antwort

0

Ich bin mir nicht sicher, ob Sie AssetBundle-Klasse verwenden, aber wenn nicht - Sie sollten.

Es ist bereits yii\web\JqueryAsset mit jquery.js definiert, die Sie verwenden können. Jetzt können Sie AssetBundle mit Ihrem Skript erstellen, das von JqueryAsset abhängig ist (lesen Sie mehr über die Ressourcenabhängigkeit in Guide). Egal wie oft dieses Asset registriert wird, JqueryAsset wird nur einmal registriert.

Sie können dasselbe tun, wenn Sie eine einzelne js-Datei mit registerJsFile() hinzufügen - im Options-Array können Sie den Schlüssel 'depends' mit dem JqueryAsset verwenden.

+0

Sie missverstehen mich. Ich benutze bereits 'yii \ web \ JqueryAsset'. Aber was ich jetzt habe - ich habe bereits mit js und CSS-Webseite in meinem Browser geladen. Und danach lade ich über Ajax meine andere Seite, die ein anderes 'jquery.js' zieht. Also wie kann ich verhindern, 'jquery.js' in DOM einzufügen, wenn ich bereits' jquery.js' habe – Link

+0

Gibt es einen Grund, warum Sie ** ganze ** Seite über Ajax ziehen, anstatt nur einen Teil davon, den Sie brauchen? – Bizley

+0

Ich weiß nicht, wie man nur einen Teil von dem, was ich brauche, zieht. Aber ich habe eine Lösung gefunden. http://www.yiiframework.com/extension/yii2-resource-smart-load/ – Link

0

Entschuldigung nochmal. Ich habe eine Lösung gefunden. Here is it