Отслеживание запросов Ajax на странице - PullRequest
4 голосов
/ 30 июня 2010

У меня есть веб-страница, и я связываю заметку со страницей, хранящей ее в моей базе данных, так что всякий раз, когда в следующий раз страница загружается, это уведомление может просматриваться, пока оно не будет удалено каким-либо другим пользователем, уполномоченным делатьтот же самый.Однако, скажем, я связываю заметку со страницей после загрузки некоторого контента через AJAX.Я хочу, чтобы заметка появлялась только после того, как этот конкретный контент был загружен в следующий раз на веб-странице.Я хотел бы отследить запрос AJAX и прикрепить к нему заметку?Я хочу сделать все это с помощью простого кода JavaScript, размещенного внизу любой веб-страницы.Как это можно сделать?

Ответы [ 2 ]

3 голосов
/ 23 сентября 2010

jQuery ajax предоставляет методы для запуска событий до, во время и после запроса ajax. Пожалуйста, проверьте API здесь для полного списка.

Вот пара методов, которые вызываются после завершения каждого ajax-запроса.

jQuery.ajaxComplete () - Зарегистрируйте обработчик, который будет вызываться при завершении Ajax-запросов.

jQuery.ajaxSuccess () - Показать сообщение об успешном завершении Ajax-запроса

Эти функции позволяют передавать функцию обратного вызова для запуска после возникновения события. В этой функции обратного вызова проверьте, загружен ли контент, который вы хотите, или нет, а затем покажите заметку.

Пример кода для вышеуказанных методов можно найти здесь:

http://api.jquery.com/ajaxComplete/

http://api.jquery.com/category/ajax/

Надеюсь, это поможет.

0 голосов
/ 27 августа 2010

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

function ajaxWrapper(settings){

    var old_callback = settings.complete;

    settings.complete = function(request, status){
        if(status == "200"){
            // check the request.responseText and add your note if appropriate 
        }

        if(old_callback){
            old_callback(request, status);
        }
    }

    jQuery.ajax(settings);
}

И затем вместо непосредственного вызова jQuery.ajax () вызовите ajaxWrapper ().

Anальтернативным вариантом будет включение примечания в ваш ответ ajax.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...