Ich habe eine Webseite erstellt von einem PHP-Skript, die beim Laden wird 0 bis N div Elemente enthalten. Für jedes div führe ich einen spezifischen JavaScript-Code aus, der die für das div relevanten Daten manipuliert. Eines der Dinge, die dieser Code tut, ist ein img Element zu erstellen und sein 'src' Attribut auf eine bestimmte URL eines Bildes einer bekannten (aber variablen) Größe. Dies geschieht zum Zwischenspeichern. Diese Bilder sollen nicht im anfänglichen Seitenlayout angezeigt werden - aber jedes sollte nach einer bestimmten Benutzereingabe erscheinen (Mouse-Hover) - also versuche ich, die Bilder zwischenzuspeichern, so dass es nicht lange dauern wird, bis sie angezeigt werden.Wie man mehrere interne JavaScript-Codes asynchron ausführt und nicht blockiert?
Das Laden der Bilder erfordert natürlich Zeit - und jedes Mal lädt ein Bild die Codeblöcke, was zu hohen Ladezeiten führt. ein Beispiel:
<div id="i1">
<script type="text/javascript">
/* run code relevant to 'i1', and amongst other things load some image
into a detached img element for later use. let's call this code 'bcode' */
</script>
<div id="i2">
<script type="text/javascript">
/* run 'bcode' for i2 */
</script>
<div id="...and so on">
zu versuchen, um asynchron den Code auszuführen hat, habe ich versucht, dies:
<div id="i1">
(function() {
var asyncScriptElement = document.createElement('script');
asyncScriptElement.async = true;
var scriptText = document.createTextNode ('here I put all of the relevant "bcode"');
asyncScriptElement.appendChild (scriptText);
document.getElementById ('Img_1_2').appendChild (asyncScriptElement);
}());
Es funktioniert unter FF (noch nicht schnell genug), und es funktioniert offensichtlich nicht unter IE. Haben Sie Vorschläge, wie Sie dies erreichen können? Beachten Sie auch, dass ich wirklich nichts von einem anderen externen PHP bekommen muss (d. H. Um XMLHttpRequest zu verwenden) - ich habe alle Daten, die ich in diesem PHP brauche. Ich brauche nur eine Möglichkeit, um das Laden der Bilder zu entsperren ...
kann ich js referenzieren Variablen des äußeren Dokuments von innerhalb der js, die in den iframes sein werden? –
Nein. Sie können zusätzliche Parameter in iframe src einfügen und diese Parameter über PHP oder JS im iframe verwenden. – lbz
@Yuval, @ibz Wenn sich Ihre Iframes in der gleichen Domäne befinden (gleicher Ursprung), haben Sie vollen Zugriff auf alles in beiden Fensterobjekten. – xj9