jquery的轮询使用ajax导致内存溢出问题
发布网友
发布时间:2022-04-24 12:26
我来回答
共2个回答
热心网友
时间:2022-04-23 06:23
你这种情况就不应该用轮询,而应该在ajax的回调函数(最好是complete)中再次发起下一次请求,这样就可以保证每次请求都是在上一次请求结束后才发起的,这样就不会造成崩溃了。比如:
function xxx(){
$.ajax({
url:"......",
data:{......},
success:function(data){
//处理返回数据
},
error:function(){
//处理错误
},
complete:function(){ //不管成功与失败,都会发生complete回调
setTimeout(xxx,5000); //5秒后再次发起ajax请求
//也可以直接用 xxx(); 可以做到完全实时,但会牺牲一些性能
}
});
}
特别注意,xxx函数在外部调用时,不能再用 setInterval,而应该是xxx()直接调用!
追问采用你的方法之后,感觉有所好转,增长变慢了,但是还是在不停的涨,用谷歌浏览器的任务管理器看,JavaScript占用的内存一直在涨,总量一直涨,但是括号内的实际大小并没有多大的变化.
追答这我就要看过你的代码才知道了,否则我怎么知道你究竟是怎么用的呢
热心网友
时间:2022-04-23 07:41
试试这个,我在用Jquery的时候都加一个这个,清除缓存。 $.ajaxSetup ({ cache: false //关闭AJAX相应的缓存 });
jquery的轮询使用ajax导致内存溢出问题
你这种情况就不应该用轮询,而应该在ajax的回调函数(最好是complete)中再次发起下一次请求,这样就可以保证每次请求都是在上一次请求结束后才发起的,这样就不会造成崩溃了。比如:function xxx(){ .ajax({ url:"...",data:{...},success:function(data){ //处理返回数据 },error:function(){...
请问jquery的长轮询的是什么实现的呢..大神们给点思路 怎么做个监控...
先用jquery的ajax读取数据,在页面不刷新的,之后用JS函数setInterval来定义重复执行这段ajax事件就解决了。比如你把ajax的这个事件写成函数 function get_data(){ .ajax({ //具体配置去参考文档 });} 之后用setInterval定义事件 setInterval("get_data()",3000);//3秒一次执行 这是具体思路。具体...
thinkphp ajax 长轮询
我理解你的意思是,你现在想在也页面加载的时候,显示报名的人数是吗?这个可以使用很简单,你可以使用 window.onload的事件,在加载的body的时候触发AJAX,页面刷新的时候会执行页面的JS,你直接使用js掉ajax,然后修改n的值就可以,如果有问题可以再问我。
jQuery怎么获取服务器时间?
轮询,就像你说的那样不间断的和服务器通信,比如每秒甚至更短就发起一次请求获取服务器时间,然后利用Ajax的readyState来确定从请求发起到收到回复过去的时间不会太长。WebSocket,利用WebSocket来实时通信。服务器当然不会蹦掉……而且如果你要做的是一个倒计时那情况就更简单了,比如说在倒计时结束之前服...
JQuery或JS实现商品加入对比的代码
你好!页面中显示的楼盘对比的导航,其中js有这样一段代码:...init_comp_bar();...其中:function init_comp_bar() { ... set_fixed_position(); initCompareBar(); show_change(0); setInterval(initCompareBar, 2000); //此句为关键}而这个initCompareBar 就是读取cookie...
php中如何实现实时更新数据呢?jQuery?
轮询你就settimeout,长轮询你就每次接收数据成功后,再来一次长轮询。但你链接别人的数据,了解一下供应商的刷新机制、周期再做考虑。当然这些都是伪实时,真的实时用http协议是不合适的,你得用flash插件做。而你用的是api供应商的东西,这条路就基本走不通了。
ajax长轮询需要修改为打开页面自动执行而不是点击BTN按钮执行,求高手帮 ...
jQuery(document).ready(function($){ $.ajax({ type:"POST", dataType:"json", url:"data.php", timeout:80000, //ajax请求超时时间80秒 data:{time:"80"}, //40秒后无论结果服务器都返回数据 success:function(data,textStatus){ //从服务器得到数据,显示数据...
什么叫跨域访问
ajax跨域,两种办法:后端写个代理接口,让后端去抓数据;或者与对方合作,用jsonp等方式传送数据 iframe跨域问题有点多,必须要得到iframe内部页面的配合才可能通信,方法也比较多:1,假写hash值通信,父子页面各自建立轮询去检测iframe中url的hash值,通过值来通信 2,利用HTML5的postMessage,不过注意...
长连接与长轮询分别如何实现的?各有哪些优势和劣势
comet有两种形式 长轮询和长连接 长连接的话: 服务端Servlet不close response,循环查找是否有数据是否要推送到客户端 客户端连接到客户端之后,单独有线程接收Servlet推送的数据,实现异步接收,可以用jquery实现,或者自己写javascript也可以 使用XMLHTTP 方式如下:try{XMLHttpReq_get = new ActiveXObject("...
jquery如何判断图片加载完成jquery如何判断图片加载完成时间
这样的话,你只能让AJAX访问这个validate.php文件,让其把验证码图片生成在服务器上,然后返回这张验证码图片的新地址,再在页面操作这个的src属性即可。如何实现点击图片跳转页面?1.新建一个html文件,命名为test.html。2.在test.html文件内,引入jquery.min.js库文件,成功加载该文件,才能使用jquery中的...