jquery ajax 跨域请求请求超时 请求会消失吗

14072人阅读
在发送ajax请求时加时间戳或者随机数去除js缓存
在发送ajax请求的时候,为了保证每次的都与服务器交互,就要传递一个参数每次都不一样,这里就用了时间戳
大家在系统开发中都可能会在js中用到ajax或者dwr,因为IE的缓存,使得我们在填入相同的值的时候总是使用IE缓存,为了解决这个问题一般可以用一下方法:
1:在ajax或者dwr提交的url后面加时间戳。
http_request.onreadystatechange = funcName(函数名);
http_request.open(“GET”, url, true);
比如url是test .jsp
那么我们在它后面加上?time=new Date();
即url=test.jsp?time=new Date();
2 :在url后面加一个随机数。
。。。。。。。。。
url=test.jsp?number=Math.random();
只要js认为链接不一样就会再次取新的内容。
时间戳应该是比随机数更随机的数,保证了每次不一样。 &script type=”text/javascript”&&/script&
PS:好像就只有IE有问题,我在FIreFox什么问题都没有
那么获取时间戳的方法是什么样子呢?下面我在网上查了资料,代码如下;
JavaScript 获取当前时间戳:
第一种方法:
var&timestamp&=&Date.parse(new&Date());
第二种方法:
var&timestamp&=&(new&Date()).valueOf();
第三种方法:
var&timestamp=new&Date().getTime();
第一种:获取的时间戳是把毫秒改成000显示,
第二种和第三种是获取了当前毫秒的时间戳。
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:100608次
积分:1297
积分:1297
排名:千里之外
原创:34篇
转载:29篇想封装一个jquery的ajax异步请求的超时处理的方法 供以后调用 请问怎么做?
本回答由提问者推荐
var sogou_ad_id=731547;
var sogou_ad_height=160;
var sogou_ad_width=690;没有水勒鱼 的BLOG
用户名:没有水勒鱼
文章数:138
访问量:12474
注册日期:
阅读量:5863
阅读量:12276
阅读量:425072
阅读量:1113448
51CTO推荐博文
最近很多人问我ajax该怎么用,怎么访问后台,怎么取得数据页面显示写一个简单的ajax访问:$.ajax({&&&&&&&&&&&&&&&&&&url:&ctx&+"/meeting/getMeetingRoomMap",&&&&&&&&&&&&&&&&&&&&&type:"get",&&&&&&&&&&&&&&&&&&&&&&&cache:false,&&&&&&&&&&&&&&&&&&&&&&async:false,&&&&&&&&&&&&&&&&&&&&&&data:{scheduleDate:scheduleDate},&&&&&&&&&&&&&&&&&&&&&success:function(data){&&&&&&&&&&&&&&&&&&&&&&if(data!=null&&&&data!=""){&&&&&&&&&&&&&&&&&&&&&&&&&&$(".showMessage").html(data);&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&});&&使用ajax需要注意的两点:1、cache属性,默认为true, &就是页面是否需要缓存的问题,很多人说明明修改了值,为什么值没变,就是因为这个属性在作怪,请求的时候,可以设置为false2、async属性,默认为true, 这个属性是决定你本次ajax请求是同步还是异步。 如果没设置这个属性为false,同步的话:js也会像后台代码一样,一行一行执行下去,默认为true,异步那就有可能出现你的ajax还没执行完,就去执行你的下一句js了其实ajax挺简单的,请求后台,获取数据回调, 然后页面展示,需要注意的就上面两点,祝你们使用愉快――――――――――――――――――――――――――――――――test.html&a href="javascript:void(0)" onmouseover="testAsync()"&asy.jsfunction testAsync(){&&&&&&&&$.ajax({&&&&&&&&async: false,&&&&&&&&type : "GET",&&&&&&&&url : 'tet.php',&&&&&&&&complete: function(msg){&&&&&&&&&&&&alert('complete');&&&&&&&&},&&&&&&&&success : function(data) {&&&&&&&&&&&&alert('success');&&&&&&&&&&&&temp=&&&&&&&&}&&&&});&&&&alert(temp+'&&&end');}tet.php&?php&&&&echo "here is html code";&&&&sleep(5);?&async: false,(默认是true);如上:false为同步,这个 testAsync()方法中的Ajax请求将整个浏览器锁死,只有tet.php执行结束后,才可以执行其它操作。当async: true 时,ajax请求是异步的。但是其中有个问题:testAsync()中的ajax请求和其后面的操作是异步执行的,那么当tet.php还未执行完,就可能已经执行了 ajax请求后面的操作,如: alert(temp+'&&&end');然而,temp这个数据是在ajax请求success后才赋值的,结果,输出时会为空。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)终止jQuery的$.ajax方法abort - 郑星阳 - ITeye技术网站
博客分类:
作者:zccst
最近遇到,如果用户频繁点击ajax请求,有两个问题:
1,如果连续点击了5个ajax请求,前4个其实是无效的,趁早结束节省资源。
2,更严重的问题是:最后一个发送的请求,响应未必是最后一个,有可能造成混乱。还需要一个队列来维护发送的请求和响应。
我其实已经设计好了该队列的实现方式,后来发现jQuery直接通过abort方法,这样就不需要那么复杂的实现了,毕竟还有其他事情等着完成。
用jquery发送ajax请求的确是太方便了,$.get、$.post、$.ajax等等,但我们有时候需要中途中止ajax请求。
举个例子,用comet做聊天时,发送一个请求后,服务端通常过几十秒后才会刷新链接、返回数据。假设服务端是30秒刷新一次链接,如果我们在10秒时想要停止这个ajax请求,怎么办呢?
先上代码,后面再解释
1var ajaxGet = $.get("comet_server.php",{id:1},function(data){
2....//一些操作
3});
4ajaxGet.abort();
上面这段代码其于两个知识点:
1. $.get返回的数据类型是XMLHttpRequest,请参考手册。($.post、$.ajax、$.getJSON、$.getScript也同样)
2. XMLHttpRequest对象有abort()方法
注意:abort()后,ajax请求立即停止,但还是会执行后面的function()。如果想避免执行其中的操作,可以在function()开始位置加判断
view sourceprint?
1var ajaxGet = $.get("comet_server.php",{id:1},function(data){
2if(data.length == 0)
3....//一些操作
4});
5ajaxGet.abort();
终止ajax请求:
var request = $.get("ajax.aspx",{id:1},function(data){
&&& //do something
});
//终止请求动作.
request.abort();
防止重复请求:
if(request != null)
&&& request.abort();
request = $.get("ajax.aspx",{id:1},function(){
&&& //do something
});
ajax & setTimeout实现 secondTry 在等待一秒之后将firstTry的ajax终止:
var firstTry& = $.ajax(
& //do something
& );
var secondTry = setTimeout(function(){alert('ok');firstTry.abort()},1000);
如果您觉得本文的内容对您的学习有所帮助,您可以微信:
浏览 12265
浏览: 1942178 次
来自: 北京
谢谢,虽然不能给你赞助,但是要给你顶
阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿滕庆亚 ...
用过SpreadJS,也包含数据可视化的图表
不知道为什么,我尝试用标签引入没有效果,而通过 preload ...你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
Jquery ajax没有返回请求结果
代码如下,没有返回结果$.ajax({
dataType:'jsonp',
async:false,
success: function(data){
getUsername = data.user.
主要因为数据时异步返回,也就是程序运行结束,数据还在获取中function getUserId() {
var url = "/services/rest/?jsoncallback=?&api_key=fc6c52ed4f458bd9eee466&method=flickr.urls.lookupUser&format=json&nojsoncallback=1&url=r";
var getUsername =
return $.ajax({
dataType: 'jsonp',
async: false
getUserId().done(function (result) {
// Call the alert here..
alert(result.user.id);
要回复讨论请先或
积分 : 2000
关注: 2 人
1 个回答, 0 个赞同}

我要回帖

更多关于 jquery ajax 超时时间 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信