Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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 Internet Explorer的优化_Javascript_Html_Ajax_Optimization_Compatibility - Fatal编程技术网

Javascript Internet Explorer的优化

Javascript Internet Explorer的优化,javascript,html,ajax,optimization,compatibility,Javascript,Html,Ajax,Optimization,Compatibility,作为一名web开发人员,我注意到我创建的任何东西在所有浏览器中都绝对有效,但在Internet Explorer中总是总是存在速度问题。请注意,我指的是速度,因为我总是注意它在所有浏览器中的显示和工作 是否有任何地方或任何人有好的internet explorer编程技巧?我的意思是如何做的事情,所以它或多或少是为InternetExplorer优化的 我的意思是,我的最新示例是(通过AJAX)从DB返回JSON数据,然后用结果构建页面。来自服务器的响应很小,它会在aaaaall浏览器中即时加载

作为一名web开发人员,我注意到我创建的任何东西在所有浏览器中都绝对有效,但在Internet Explorer中总是总是存在速度问题。请注意,我指的是速度,因为我总是注意它在所有浏览器中的显示和工作

是否有任何地方或任何人有好的internet explorer编程技巧?我的意思是如何做的事情,所以它或多或少是为InternetExplorer优化的

我的意思是,我的最新示例是(通过AJAX)从DB返回JSON数据,然后用结果构建页面。来自服务器的响应很小,它会在aaaaall浏览器中即时加载,但在internet explorer中需要5-10秒,具体取决于操作系统和ie版本

我说不出话来,我只是想知道我能做些什么

示例:


-theo

你可以在IE中分析你的站点,看看是什么让它慢下来。

简短回答:不要在IE中使用document.createElement(“div”)之类的DOM方法来创建标记。改为使用字符串构建HTML


如果必须使用DOM方法,请确保不要多次向页面添加元素。也就是说,创建一个包含所有内容的主容器,然后作为最后一步调用document.body.appendChild(“div”)(其中“div”是主容器)。这将最大限度地减少重新提交的次数。

IE中的Javascript性能目前是所有流行浏览器中最差的。使用IE作为性能基准的建议是有根据的。我还要补充一点,使用一个公认的js/ajax库(jQuery、YUI等)将确保为您完成大量特定于浏览器的优化,并经过大量测试


如果您在web应用程序中使用了大量自定义js,并且正在寻找一些最佳实践,那么我可以推荐几个网站:。这是一个为通用js zen插件的好机会。

任何DOM操作都是昂贵的(添加元素、删除元素)。因此,您实际上可以通过在页面上保留隐藏元素并使其可见来最小化DOM操作


我认为这是值得一看的。

在IE6中构建页面时,我遇到了类似的问题,并最终进行了纯字符串连接以获得可接受的性能。我的第一次尝试使用jquery(当时是1.2.6)来构建元素和添加属性,但结果证明太慢了。手动将html构建为字符串,然后在元素上设置innerHtml属性以显示表要快得多。关于IE6,jQuery1.4+要快得多,所以这可能不再适用

在for循环中使用中间字符串似乎也能提高性能,即不要只在一个大字符串上使用“+=”。在for循环中,为表行添加一个字符串,并将其附加到每个循环的大字符串中。这可能是一种尝试

我在IE6的性能方面也遇到了两个问题: -在IE6中切换css类比较慢,例如,最好在元素的样式属性中设置背景色。
-如果您在表中的tr或td标记上执行鼠标移动操作,这将在除IE之外的所有其他浏览器中正常工作。您必须在表级别处理鼠标移动和鼠标移出事件,并找到事件源tr或td标记,并在此时执行任何操作。

我建议您在IE中预览您的设计,一旦在IE中工作,它就很容易在firefox或其他任何地方工作。我还注意到,当我用IE浏览Gmail和Facebook时,我仍然有类似的问题。评论不错,但我的问题不是它不工作,但它在IE中的运行速度总是很慢。我对IE上的Gmail或Facebook没有任何问题。也许你安装了一个有问题的插件?我还发现,在使用jQuery库进行AJAX处理时,IE的性能与其他浏览器非常相似。如果它在所有浏览器中都适用,请将您的计算机规格发送给我,这样我就可以获得相同的规格。此外,也不要多次将字符串作为innerHTML添加到页面中。我认为这绝对是最好的提示,适用于所有浏览器,但特别是对于IE,这意味着您应该使用某种模板工具,而不是一直手工编码字符串连接。这是一个很好的工具。它允许您从javascript或java生成html。像smarty、velocity和free marker一样工作。模板的输出是一个js函数,您可以传入一个数据对象,并返回可用于设置为innerHTML的html。嵌套模板允许对innerHTML进行一次调用,以提高性能和代码重用。今晚我会再开始读,谢谢。你会把链接给我吗