AJAX 归档

  • 用jquery发送ajax请求的确是太方便了,$.get、$.post、$.ajax等等,但我们有时候需要中途中止ajax请求。 举个例子,用comet做聊天时,发送一个请求后,服务端通常过几十秒后才会刷新链接、返回数据。假设服务端是30秒刷新一次链接,如果我们在10秒时想要停止这个ajax请求,怎么办呢? 先上代码,后面再解释 var ajaxGet = $.get("comet_server.php",{id:1},function(data){ ....//一些操作 }); ajaxGet.abort(); 上面这段代码其于两个知识点: 1. $.get返回的数据类型是XMLHttpRequest,请参考手册。($.post、$.ajax、$.getJSON、$.getScript也同样) 2. XMLHttpRequest对象有abort()方法 注意:abort()后,ajax请求立即停止,但还是会执行后面的function()。如果想避免执行其中的操作,可以在function()开始位置加判断 var ajaxGet = $.get("comet_server.php",{id:1},function(data){ if(data.length == 0) return true; ....//一些操作 }); ajaxGet.abort();

    jquery如何停止ajax请求?

    用jquery发送ajax请求的确是太方便了,$.get、$.post、$.ajax等等,但我们有时候需要中途中止ajax请求。 举个例子,用comet做聊天时,发送一个请求后,服务端通常过几十秒后才会刷新链接、返回数据。假设服务端是30秒刷新一次链接,如果我们在10秒时想要停止这个ajax请求,怎么办呢? 先上代码,后面再解释 var ajaxGet = $.get("comet_server.php",{id:1},function(data){ ....//一些操作 }); ajaxGet.abort(); 上面这段代码其于两个知识点: 1. $.get返回的数据类型是XMLHttpRequest,请参考手册。($.post、$.ajax、$.getJSON、$.getScript也同样) 2. XMLHttpRequest对象有abort()方法 注意:abort()后,ajax请求立即停止,但还是会执行后面的function()。如果想避免执行其中的操作,可以在function()开始位置加判断 var ajaxGet = $.get("comet_server.php",{id:1},function(data){ if(data.length == 0) return true; ....//一些操作 }); ajaxGet.abort();

    继续阅读...

  •   使用AJAX取后台数据,按要求每次应该返回的是不同的结果,但由于缓存,经常会出现两次取的数据重复的问题。特从网上寻觅解决方法:   1、在服务端加 header(“Cache-Control: no-cache, must-revalidate”);   2、在ajax发送请求前加上 anyAjaxObj.setRequestHeader(“If-Modified-Since”,”0″);   3、在ajax发送请求前加上 anyAjaxObj.setRequestHeader(“Cache-Control”,”no-cache”);   4、在 Ajax 的 URL 参数后加上 “?fresh=” + Math.random(); //当然这里参数 fresh 可以任意取了   5、和第4种类似,只不过把参数换成时间。因为毕竟随机数还是存在重复的可能性,如果换成时间就不可能重复了。在 URL 参数后加上 “?timestamp=” + new Date().getTime();   6、用POST替代GET:不推荐

    避免AJAX缓存

      使用AJAX取后台数据,按要求每次应该返回的是不同的结果,但由于缓存,经常会出现两次取的数据重复的问题。特从网上寻觅解决方法:   1、在服务端加 header(“Cache-Control: no-cache, must-revalidate”);   2、在ajax发送请求前加上 anyAjaxObj.setRequestHeader(“If-Modified-Since”,”0″);   3、在ajax发送请求前加上 anyAjaxObj.setRequestHeader(“Cache-Control”,”no-cache”);   4、在 Ajax 的 URL 参数后加上 “?fresh=” + Math.random(); //当然这里参数 fresh 可以任意取了   5、和第4种类似,只不过把参数换成时间。因为毕竟随机数还是存在重复的可能性,如果换成时间就不可能重复了。在 URL 参数后加上 “?timestamp=” + new Date().getTime();   6、用POST替代GET:不推荐

    继续阅读...