Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么原型';s的Ajax请求需要这么长时间才能处理?_Javascript_Ajax_Prototypejs - Fatal编程技术网

Javascript 为什么原型';s的Ajax请求需要这么长时间才能处理?

Javascript 为什么原型';s的Ajax请求需要这么长时间才能处理?,javascript,ajax,prototypejs,Javascript,Ajax,Prototypejs,我正在使用prototype.js及其Ajax对象实现一个交互式图形小部件。我为用户想要的数据生成了一个XML查询,并使用Ajax.request将其发布到服务器上,而Firefox似乎需要花费很长时间。Firebug控制台似乎显示POST在大约700毫秒内以200 OK结束,但我安装的onInteractive()处理程序(原型在readyState==3时触发)在接下来的12秒内多次触发,然后我的onSuccess处理程序处理数据 在我深入研究代码之前,有人知道这里发生了什么吗?对于read

我正在使用prototype.js及其Ajax对象实现一个交互式图形小部件。我为用户想要的数据生成了一个XML查询,并使用Ajax.request将其发布到服务器上,而Firefox似乎需要花费很长时间。Firebug控制台似乎显示POST在大约700毫秒内以200 OK结束,但我安装的onInteractive()处理程序(原型在readyState==3时触发)在接下来的12秒内多次触发,然后我的onSuccess处理程序处理数据


在我深入研究代码之前,有人知道这里发生了什么吗?

对于readyState 3,XHR请求仍在处理中,因此可能会多次触发您的
onInteractive
处理程序。它有什么作用?为什么不能使用一个回调并在
readyState===4
上启动它?此外,您还可以尝试使用Firebug的net面板(“顶部的net”选项卡)查看花费了多少时间。

事实证明,Firebug在readystate为4时显示POST finishing,但在onSuccess处理程序完成之前,不会报告整个事务的完成,而这一过程需要花费相当长的时间来处理兆字节的XML。切换到更紧凑的JSON表示而不是XML,将繁琐的XML解析或多或少地减少到:

eval(responseText); doGraph();

谢谢大家的评论,伙计们,它们并不是我所需要的,但它们为我指明了正确的方向,而且该功能现在运行得非常顺利。

您在回复中返回了多少?大约1兆字节的XML文本,根据查询范围的不同,稍后一个快速的awk脚本显示,一个或多或少紧凑的JSON表示大约要小20倍,所以我来看看服务器端脚本。我本希望避免它——最好有一件东西要维护,而不是两件东西——但是性能的提升是值得的;这完全是为了调试。我试图弄明白为什么Firebug声称XHR已经完成了这么久。网络标签是个好主意,谢谢。