So machen Sie sofort beim Laden eines Dokuments einen AJAX-Aufruf

8

Ich möchte einen Ajax-Aufruf ausführen, sobald ein Dokument geladen ist. Ich lade gerade einen String, der Daten enthält, die ich für eine Autocomplete-Funktion verwenden werde. Dies ist, was ich getan habe, aber es ruft das Servlet nicht auf.

Ich habe die Aufrufe für die verschiedenen JS-Skripts entfernt, um sie klarer zu machen. Ich habe mehrere ähnliche AJAX-Aufrufe in meinem Code ausgeführt, aber normalerweise ausgelöst durch ein Klickereignis, bin ich nicht sicher, welche Syntax dafür verwendet wird, sobald das Dokument geladen wird, aber ich dachte, das wäre es (aber es ist nicht):

%Vor%

BEARBEITEN: mein Code sieht jetzt eher wie Karims aus:

%Vor%

Trotzdem funktioniert die automatische Vervollständigung immer noch nicht (zugegeben, eine andere Frage überhaupt, also werde ich auch eine andere Frage stellen, damit sie einen passenden Titel hat).

Meine Variable "Daten", die zurückgeschickt wird, sieht aus wie ... "Manuskript | Text | Informationsobjekt | Basketball | Ball | Sportausrüstung | Tarantula" .split ("|");

Wenn ich das tue

%Vor%

und dann

%Vor%

Alles funktioniert gut, aber wenn ich den Wert von dataArray vom Server bekomme, tut es das nicht.

    
Ankur 10.05.2010, 13:31
quelle

4 Antworten

9

Sie müssen jQuery laden, bevor Sie Aufrufe an die jQuery-API senden.

Laden Sie jQuery ...

vor dem Code-Snippet %Vor%     
Brant 10.05.2010, 13:34
quelle
3
___ qstnhdr ___ So machen Sie sofort beim Laden eines Dokuments einen AJAX-Aufruf ___ answer2802966 ___

Sie müssen jQuery laden, bevor Sie Aufrufe an die jQuery-API senden.

Laden Sie jQuery ...

vor dem Code-Snippet %Vor%     
___ tag123jquery ___ jQuery ist eine beliebte Cross-Browser-JavaScript-Bibliothek, die das DOM-Traversal (Document Object Model), die Ereignisbehandlung, Animationen und AJAX-Interaktionen erleichtert, indem die Diskrepanzen zwischen Browsern minimiert werden. Eine mit jQuery gekennzeichnete Frage sollte mit jQuery in Zusammenhang stehen, daher sollte jquery von dem fraglichen Code verwendet werden, und mindestens eine jquery-nutzungsbezogene Elemente müssen in der Frage enthalten sein. ___ tag123ajax ___ AJAX (Asynchrones JavaScript und XML) ist eine Technik zum Erstellen nahtloser interaktiver Websites über den asynchronen Datenaustausch zwischen Client und Server. AJAX erleichtert die Kommunikation mit dem Server oder partielle Seitenaktualisierungen ohne eine herkömmliche Seitenaktualisierung. ___ answer2803146 ​​___

Sie stoßen auf dieses Problem, weil der Aufruf von $ .ajax nicht zurückgibt, bevor die automatische Vervollständigung aufgrund der asynchronen Natur von XHR initialisiert wird. Die Anfrage wird gesendet, die Ausführung fließt in den nächsten Ausdruck, bevor dataArray innerhalb des success Callbacks gefüllt wurde. Versuchen Sie Folgendes:

%Vor%

Dadurch wird sichergestellt, dass Ihre automatische Vervollständigung nur initialisiert wird, wenn die Antwort vom Server empfangen wurde.

    
___ tag123initialisierung ___ Die Initialisierung beschäftigt sich mit der Aufgabe, den Inhalt Ihrer Datenstruktur zu initialisieren. Es ist eine gängige Praxis in statisch typisierten Sprachen. ___ answer2802967 ___

Verwenden Sie einfach

%Vor%

Stellen Sie außerdem sicher, dass die Antwort wirklich ein JSON ist. Wenn das Servlet den Fehler angibt, wird es in Ihrem Fall nicht korrekt verarbeitet. Verwenden Sie Firebug, um festzustellen, ob das Servlet aufgerufen wird und wie die Antwort lautet. Oder führen Sie eine minimale Protokollierung auf der Serverseite durch.

    
___ answer16288596 ___

Sie können die Google Chrome Browser-Entwicklertools verwenden, um zu sehen, was Ihr Server zurückgibt. Um auf Strg + Umschalt + I zuzugreifen und in der Developer Tool-Ansicht, überprüfen Sie die Netzwerk-Registerkarte, um mögliche Fehler oder falsche Daten zu sehen.

    
___ qstntxt ___

Ich möchte einen Ajax-Aufruf ausführen, sobald ein Dokument geladen ist. Ich lade gerade einen String, der Daten enthält, die ich für eine Autocomplete-Funktion verwenden werde. Dies ist, was ich getan habe, aber es ruft das Servlet nicht auf.

Ich habe die Aufrufe für die verschiedenen JS-Skripts entfernt, um sie klarer zu machen. Ich habe mehrere ähnliche AJAX-Aufrufe in meinem Code ausgeführt, aber normalerweise ausgelöst durch ein Klickereignis, bin ich nicht sicher, welche Syntax dafür verwendet wird, sobald das Dokument geladen wird, aber ich dachte, das wäre es (aber es ist nicht):

%Vor%

BEARBEITEN: mein Code sieht jetzt eher wie Karims aus:

%Vor%

Trotzdem funktioniert die automatische Vervollständigung immer noch nicht (zugegeben, eine andere Frage überhaupt, also werde ich auch eine andere Frage stellen, damit sie einen passenden Titel hat).

Meine Variable "Daten", die zurückgeschickt wird, sieht aus wie ... "Manuskript | Text | Informationsobjekt | Basketball | Ball | Sportausrüstung | Tarantula" .split ("|");

Wenn ich das tue

%Vor%

und dann

%Vor%

Alles funktioniert gut, aber wenn ich den Wert von dataArray vom Server bekomme, tut es das nicht.

    
___
karim79 10.05.2010 13:59
quelle
1

Verwenden Sie einfach

%Vor%

Stellen Sie außerdem sicher, dass die Antwort wirklich ein JSON ist. Wenn das Servlet den Fehler angibt, wird es in Ihrem Fall nicht korrekt verarbeitet. Verwenden Sie Firebug, um festzustellen, ob das Servlet aufgerufen wird und wie die Antwort lautet. Oder führen Sie eine minimale Protokollierung auf der Serverseite durch.

    
Juriy 10.05.2010 13:35
quelle
0

Sie können die Google Chrome Browser-Entwicklertools verwenden, um zu sehen, was Ihr Server zurückgibt. Um auf Strg + Umschalt + I zuzugreifen und in der Developer Tool-Ansicht, überprüfen Sie die Netzwerk-Registerkarte, um mögliche Fehler oder falsche Daten zu sehen.

    
raj239 29.04.2013 21:32
quelle

Tags und Links