在IE中,Javascript工作得很好但很慢,为什么?

时间:2010-11-23 13:50:13

标签: javascript internet-explorer performance

请原谅我对新手程序员的无知以及我的语言错误,因为我不是母语为英语的人。

我有一个页面,在某些点击事件触发一些javascript并通过php加载内容到iframe,它也执行一些javascript动作(在其自身和父页面上)。在FF上一切正常,所有功能在IE中都可以正常工作。但IE中的性能非常慢......其中一个主要功能是在鼠标上改变一些图片的不透明度,IE显示新的不透明度需要2s +。为什么?更重要的是,我该怎么做才能解决它?

提前致谢, 艾琳

4 个答案:

答案 0 :(得分:4)

与其他主流浏览器相比,IE浏览器的JavaScript引擎速度非常慢(我说的是IE8而不是IE9 +)...就是这样。您可能希望禁用IE中的某些内容,当然还要优化整个脚本。

例如,您可能希望禁用IE中的淡入淡出,或者为其提供更少的帧(步长之间的间隔更长),因为它的DirectX不透明度过滤器,它比中的其他浏览器慢得多淡出情况。

为了描述IE特有的性能问题,我强烈推荐dynaTrace AJAX edition,这是一款专为IE设计的免费性能分析器。

答案 1 :(得分:1)

基准显示IE中的内容有多慢:http://www.favbrowser.com/chrome-vs-opera-vs-firefox-vs-internet-explorer-vs-safari/

您可能需要尝试不同的操作DOM的方法来提高IE中的性能。

答案 2 :(得分:0)

IE已知有点慢(讽刺)。我不确切知道你在做什么,但是如果用户使用IE,你可能想要删除一些效果?也许你正在做很多DOM更改。

查看代码以便为您提供有关如何获得更好性能的提示非常方便。

答案 3 :(得分:0)

好的,你走了,这可能是创建大部分问题的脚本......有什么建议吗?

$(function() {

$("#myTable").draggable({
    containment:'parent',
    drag:function() {
        $("#myTable").css("opacity", "0.6");
        $("#myTable").css("background-image", 'none');
        $("#galframe").css("opacity", "1.0");

    },
    stop:function(){
        $("#myTable").css("opacity", "1.0");
        $("#galframe").css("opacity", "0.6");
        var $image = $("#galframe").contents().find("#jgal div.active img");
                var src=$image[0].src;
                $("#myTable").css("background-image", 'url(' + src + ')');
                $position = $("#myTable").position();
                $("#myTable").css("backgroundPosition", (-parseInt($position.left)+549).toString()+ "px " + (-parseInt($position.top)+20).toString() + "px");
                $("#myTable").css("background-repeat", "no-repeat");
            }
});
});