Javascript Internet Explorer 9中的Ajax刷新后速度变慢
我正在开发一个客户端web应用程序,它大量使用JavaScript和Ajax来提供所需的功能 这对于大多数浏览器(Chrome、Firefox等)来说都不是问题,但在Internet Explorer中,性能是一个主要问题 即使在Internet Explorer上,最初加载页面也不到一秒钟。但在刷新页面时,加载和显示页面可能需要1到20秒的时间 由于应用程序被划分为多个文件,因此很难发布代码。我只能解释其意图 应用程序初始化两个内容容器,一个用于静态内容,另一个用于动态内容。这些内容容器中的每一个都是通过Ajax填充的,并通过innerHTML属性影响DOM元素 第一次构建页面不到一秒钟。随后的刷新需要更长的时间 页面的初始加载和刷新之间有什么变化可以解释这种巨大的性能下降?我是否需要在卸载页面时取消初始化某些内容Javascript Internet Explorer 9中的Ajax刷新后速度变慢,javascript,html,ajax,internet-explorer-9,Javascript,Html,Ajax,Internet Explorer 9,我正在开发一个客户端web应用程序,它大量使用JavaScript和Ajax来提供所需的功能 这对于大多数浏览器(Chrome、Firefox等)来说都不是问题,但在Internet Explorer中,性能是一个主要问题 即使在Internet Explorer上,最初加载页面也不到一秒钟。但在刷新页面时,加载和显示页面可能需要1到20秒的时间 由于应用程序被划分为多个文件,因此很难发布代码。我只能解释其意图 应用程序初始化两个内容容器,一个用于静态内容,另一个用于动态内容。这些内容容器中的每
Communication.request = function (method, target, async, data, callback) {
var types = ['string', 'string', 'boolean', 'null', 'null']; // Parameter types
if (data) { // Data was provided
types[3] = 'string'; // Data must be a string
}
if (callback) { // Callback was provided
types[4] = 'function'; // Callback must be a function
}
if (Utils.hasParams(arguments, types)) { // All the required parameters were provided and of the right type
var request = new XMLHttpRequest(); // Create a new request
request.open(method, target, async); // Open the request
if (callback) { // Callback was provided
request.handleCallback(callback); // Register the callback
}
if (data) { // Data was provided
var contentType = 'application/x-www-form-urlencoded'; // Prepare the content type
request.setRequestHeader('Content-Type', contentType); // Add a content type request header
}
request.send(data); // Send the request
}
};
问题似乎与并发连接的数量有关。根据web服务器的连接/类型,Internet Explorer中的并发连接限制为2或4个 将连接数夹紧到2后,问题不再发生。其他浏览器似乎有更高的限制,尽管为了以防万一,我将这些限制限制为4
此外,并发消息的数量是在任何给定时间正在传输的消息的数量。这在以前是不受限制的,这让Internet Explorer非常伤心:(问题似乎与并发连接的数量有关。根据web服务器的连接/类型,Internet Explorer中的并发连接限制为2或4个 在将连接数限制为2后,问题就不再出现了。其他浏览器似乎有更高的限制,尽管我已经将这些限制为4,以防万一
同时,并发消息的数量是任何给定时间内正在传输的消息的数量。这在以前是无限的,这让Internet Explorer非常伤心:-(您需要将我们链接到该代码,或者在此处发布尽可能多的相关代码,以便我们了解发生这种情况的原因。我更新了解释并添加了详细说明XMLHttppRequest使用的代码。按F-12,打开“网络”选项卡并查看XHR流量。这将帮助您找到延迟。使用De命令分析流量Developer Tools表示请求正在等待响应。使用Wireshark进行的分析表明,在Internet Explorer意识到这一点之前很久就收到了响应。我忘了提到动态内容每秒刷新10次。使用Wireshark进行的流量分析表明,这些请求都已正确发送在IE仍然没有显示任何内容的时候。您需要将我们链接到代码,或者在此处发布尽可能多的相关代码,以便我们理解为什么会发生这种情况。我更新了解释并添加了详细说明XMLHttppRequest使用的代码。按F-12,打开NET选项卡并查看XHR流量。这将帮助您找到delay。使用开发工具分析流量表明请求正在等待响应。使用Wireshark进行分析表明,在Internet Explorer意识到这一点之前很久就收到了响应。我忘了提到动态内容每秒刷新10次。使用Wireshark进行流量分析表明在IE仍然不显示任何内容的情况下,所有请求都被正确发送。