Internet Explorer 9 中的 Ajax 刷新后速度变慢
Ajax in Internet Explorer 9 slow after refresh
我正在开发一个客户端Web应用程序,该应用程序大量使用JavaScript和Ajax来提供所需的功能。
对于大多数浏览器(Chrome,Firefox等)来说,这不是问题,但是在Internet Explorer中,性能是一个主要问题。
最初加载页面只需不到一秒钟的时间,即使在Internet Explorer上也是如此。但是在刷新页面时,加载和显示页面可能需要 1 到 20 秒。
由于应用程序分为多个文件,因此很难发布代码。我只能解释预期的行为。
应用程序初始化两个内容容器,一个用于静态内容,一个用于动态内容。这些内容容器中的每一个都是通过 Ajax 填充的,并通过 innerHTML 属性影响 DOM 元素。
第一次构建页面需要不到一秒钟的时间。后续刷新需要更长的时间。
页面的初始加载和页面的刷新之间发生了哪些变化来解释这种巨大的性能下降?卸载页面时是否需要取消初始化某些内容?
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非常难过:-(
相关文章:
- 强制模板刷新ember.js
- 如何通过ajax刷新JSF填充的javascript变量
- 如何解决Yii中的页面刷新问题
- Jquery提交表单而不刷新
- Wacom stu-430签名捕获速度太慢
- 刷新页面后会出现警报
- 刷新后保留对网页的更改
- 如何在不刷新页面的情况下更新显示框
- 重定向时角度刷新浏览器
- 如何防止jQueryonclick事件中的Ruby方法在页面刷新时执行
- Javascript,输出结果后页面不断刷新
- $(document).height()在刷新时随机化值(Safari 5.1.10)
- 刷新父窗口后无法关闭窗口
- 刷新页面时hasClass不起作用
- X秒后刷新select元素
- chart.series[id].remove()无法刷新高位图表/高位股票中其他系列的图例属性
- Internet Explorer 9 中的 Ajax 刷新后速度变慢
- 为什么这些HTML5图像渲染(或不渲染!)取决于我刷新的速度
- socket.io'断开连接'如果页面刷新速度足够快,则不调用
- HTML5视频随机速度-自动刷新