Heim >Web-Frontend >js-Tutorial >Verzögern Sie Ajax -Anruf für x Sekunden

Verzögern Sie Ajax -Anruf für x Sekunden

Joseph Gordon-Levitt
Joseph Gordon-LevittOriginal
2025-03-07 00:53:08839Durchsuche

Delay AJAX call for X seconds

Verzögern Sie Ajax -Anruf für x Sekunden

JQuery -Code -Snippet, um Ajax -Anruf für x Sekunden zu verzögern. Könnte für Ereignisse verwendet werden, die Aktionen erfordern, bevor Daten über AJAX von der Serverseite abgerufen werden. UPDATE: Es gibt eine einfachere Möglichkeit, dies zu tun, indem Sie setTimeout () -Funktion verwenden - siehe unten für ein Beispiel. Genießen! :)
<span>var pendingCall = { timeStamp: null, procID: null };
</span>
<span>$('li a').click(function (e) {
</span>    e<span>.preventDefault();
</span>    <span>var getUrl = $(this).attr("href");
</span>	<span>var timeStamp = Date.now();
</span>
    <span>var printCall = function () {
</span>        $<span>.ajax({
</span>            <span>url: getUrl,
</span>            <span>type: "GET",
</span>            <span>beforeSend: function () { },
</span>            <span>error: function (request) { alert(request) },
</span>            <span>success: function (data) {
</span>                <span>if (pendingCall.timeStamp != timeStamp) { return false; }
</span>                <span>$('#contentdiv').html(data);
</span>                pendingCall<span>.procID = null;
</span>            <span>}
</span>        <span>});
</span>    <span>};
</span>
    <span>if (pendingCall.procID) {
</span>        <span>clearTimeout(pendingCall.procID)
</span>    <span>};
</span>	<span>//set the time before call 3000 = 3 seconds
</span>    pendingCall <span>= { timeStamp: timeStamp, procID: setTimeout(printCall, 3000) };
</span><span>});</span>

setTimeout Alternative

Hier ist ein Snippet, das die Lademaske von Ihrer Seite entfernt, eine Sekunde nach dem Laden einer Website. Sie können eine Lademaske einrichten, um Ihre gesamte Website abzudecken, während Ihre Website das Laden von Personen mit dem Laden von Bildern verhindert.  
<span>jQuery(document).ready(function () {
</span>	<span>setTimeout( "jQuery('#loading_mask').hide();", 1000 );
</span><span>});</span>

häufig gestellte Fragen (FAQs) zur Verzögerung von Ajax -Aufrufen

Was ist der Zweck, einen Ajax -Aufruf zu verzögern? Wenn Sie beispielsweise über eine Suchfunktion auf Ihrer Website verfügen, die bei jedem Ajax -Anruf bei jedem Charakter einen Ajax -Anruf auslöst, kann dies zu einer erheblichen Last auf Ihrem Server führen. Durch die Einführung einer Verzögerung können Sie sicherstellen, dass der AJAX -Anruf erst getätigt wird, nachdem der Benutzer das Tippen gestoppt hat und die Serverlast verringert hat. Es kann auch die Benutzererfahrung verbessern, indem sie unnötige Ladezeiten verhindern und sicherstellen, dass die relevantesten Ergebnisse angezeigt werden. Mit dieser Funktion können Sie eine Verzögerung in Millisekunden angeben, bevor der Ajax -Anruf getätigt wird. Hier ist ein grundlegendes Beispiel:

setTimeout (function () {

$ .ajax ({

// ajax options

});

}, 2000); // 2 Sekunden Verzögerung

In diesem Beispiel wird der AJAX -Aufruf um 2 Sekunden verzögert. Wenn Sie SetTimeOut aufrufen, wird eine eindeutige ID zurückgegeben, mit der das Timeout mit der ClearTimeout -Funktion abgesagt werden kann. So können Sie es tun:

var timeoutId = setTimeout (function () {
$ .ajax ({
// Ajax -Optionen
});
}, 2000); Storniert vor der Ausführung. Wenn die Verzögerung zu lang ist, kann sich Ihre Website langsam und nicht mehr ansprechen. Es ist wichtig, ein Gleichgewicht zwischen der Reduzierung der Serverlast und der Aufrechterhaltung einer reibungslosen Benutzererfahrung zu finden.

Wie kann ich die optimale Verzögerung für einen AJAX -Aufruf bestimmen? Ein guter Ausgangspunkt besteht darin, eine Verzögerung von ein paar hundert Millisekunden festzulegen und anschließend anhand der Leistung und des Benutzer -Feedbacks anzupassen.

Kann ich mehrere AJAX -Aufrufe gleichzeitig verzögern? Jeder SetTimeOut -Anruf gibt eine eindeutige ID zurück, mit der die Zeitlimit bei Bedarf abgesagt werden kann.

Kann ich SetTimeout mit anderen JavaScript -Funktionen verwenden? Sie können es verwenden, um ein Stück JavaScript -Code zu verzögern. Denken Sie jedoch daran, dass SetTimeout asynchron ist, was bedeutet, dass die Schleife nicht bis zur Abschluss des Auszeits wartet, bevor sie zur nächsten Iteration übergeht. Dies kann zu unerwartetem Verhalten führen, wenn es nicht korrekt behandelt wird. JQuery bietet jedoch eine einfachere und bequemere Möglichkeit, AJAX -Anrufe zu tätigen.

Kann ich SetTimeout mit Versprechen verwenden? Dies kann bei der Arbeit mit asynchronen Operationen wie Ajax -Aufrufen nützlich sein.

Das obige ist der detaillierte Inhalt vonVerzögern Sie Ajax -Anruf für x Sekunden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn