jquery ajax при загрузке страницы и последующем вызове ajax через 5 минут происходит сбой браузера через некоторое время - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь выполнить вызов ajax при загрузке страницы, а затем каждые 5 минут. Поначалу это работает, но со временем кажется, что ajax называется кучей раз, что приводит к сбою моего браузера. Когда я проверяю консоль разработки браузера (вкладка «Сеть»), я вижу кучу запросов, отправляемых за один раз, и увеличивается каждый раз.

$(document).ready(function(){

    function sendRequest(){
        $.ajax({
            url: "data.php",
            success: function(data){    
                //do stuff with data..
            },
            complete: function() {
                setInterval(sendRequest, 300000); // Call AJAX every 5 mins (in milliseconds)
            }
        });
    };

    sendRequest();

});

Что-то не так с приведенным выше фрагментом кода или способом его улучшения, чтобы гарантировать только один ajax вызывается через 5 минут.

Просто чтобы повторить то, что я пытаюсь сделать:

  1. Вызов ajax загрузка на странице
  2. Звоните ajax каждые 5 минут

1 Ответ

1 голос
/ 28 января 2020

Вы можете вызывать setInterval при каждом ajax завершении вызова, что является результатом установки интервала вызова метода sendRequest несколько раз и вызывает проблему.

вызов setInterval только один раз за пределами ajax вызов, который будет вызывать sendRequest метод каждые 5 минут, см. ниже код

$(document).ready(function(){

    function sendRequest(){
        $.ajax({
            url: "data.php",
            success: function(data){    
                //do stuff with data..
            },
            complete: function() {
            }
        });
    };
    sendRequest();
    setInterval(sendRequest, 300000); // Call AJAX every 5 mins (in milliseconds)
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...