jquery verzögert und verspricht mit getScript

8

Ich habe das neue (ish) verzögerte Objekt in jQuery untersucht und bin über diesen Websiteartikel gestolpert hier .

In dem Artikel gibt es einen Code, der entworfen wurde, um Skripte zu cachen, so dass sie nicht mehr als einmal angefordert werden.

%Vor%

Wie dies für mich aussah, war eine Möglichkeit sicherzustellen, dass Ihr Skript nur ausgeführt wird, wenn Ihr $.getScript() erfolgreich war.

Soweit meine Experimente durchgeführt wurden, wird der Fehler-Callback niemals aufgerufen, selbst wenn ich eine falsche URL angegeben habe.

Habe ich etwas offensichtlich übersehen oder ist das Codebeispiel falsch?

Hinweis: Ich hätte diese Frage auf der Website gestellt, aber das Kommentarsystem hat nicht funktioniert. : -S

    
James South 26.05.2011, 10:42
quelle

2 Antworten

4

Ich bin mir ziemlich sicher, dass dieses Skript nicht bei domänenübergreifenden Anfragen funktionieren kann.

$.getScript funktioniert auf verschiedene Arten für lokale und domänenübergreifende Anfragen. Bei lokalen Anfragen lädt es den Inhalt über AJAX und führt es dann aus. Da dies eine normale AJAX-Operation ist, treten Fehler auf normale Weise auf. Dieser Code funktioniert gut, soweit ich es testen kann.

Bei domänenübergreifenden Anforderungen funktioniert dies jedoch, indem Sie script -Tags in das Dokument einfügen. error Handler werden niemals für die script -Elemente ausgelöst, die eingefügt werden, daher werden Ihre error -Rückrufe niemals ausgelöst.

    
lonesomeday 08.06.2011, 21:49
quelle
0

Aber ... Sie können die Remote-URL-Prüfung an eine (z. B.) PHP-Datei delegieren.

%Vor%

checkfile.php:

%Vor%

Nicht 100% zuverlässig, aber besser als nichts ...

    
jochen 12.12.2013 11:31
quelle

Tags und Links