ajax 触发频繁的时候应注意的问题.
前段时间做了个牌仔打印的程序,需求是,有可能连续的打印牌仔,最多可以达到几万个。
我开始想的是用ajax来取数,然后再去触发一个web打印的控件,触发完打印之后再进行下一次ajax取数,由于频繁的触发,一些细节就特别需要注意的,
首先,我用的是jquery自带的ajax的方法,自带的方法不会自动的回收XMLHttpRest的对象,所以要手动的回收,要不然会使浏览器的内存增加
我的写法如下
$.ajax({ type: "POST", url: "Handler.ashx", data: { type: "print_barcode", barcode: barcodeArr[barcode_index] }, success: view_print_barcode, dataType:"json", complete: function (XHR, TS) { XHR = null }, cache: false })
还有一个是困扰了我很久的问题,就是如果频繁的触发ajax会使 IIS的线程池爆掉,然后导致web服务器出问题,后来发现时后台的一些资源也要及时的释放掉
再者就是触发ajax 4000~5000次的浏览器会崩溃(我测试触发的频率很快),这个时候电脑所有浏览器都无法浏览,清空记录之后又能继续浏览,或者是等一段时间浏览器也会正常运行,怀疑是把电脑的端口弄的阻塞了.后来想到了在触发打印的之后加上了一小段时间的间隔就好了.
setTimeout(pirnt_branch, 300); //增加300毫秒的間隔,要不然瀏覽器會崩潰
以上差不多是我前段时间做的时候碰到的一点问题吧.
create by nineteen 2012.12.27
浙公网安备 33010602011771号