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

posted on 2012-12-27 09:10  p1anw2ei  阅读(691)  评论(1)    收藏  举报

导航