繁体   English   中英

Javascript可以在IE中正常运行,但运行缓慢,为什么?

[英]Javascript works fine but very slowly in IE, why?

对我是菜鸟程序员的无知和对我不是英语母语的人的语言错误感到抱歉。

我有一个页面,该页面在发生某些单击事件时会触发一些javascript,并通过php将内容加载到iframe中,该iframe也将执行一些javascript操作(在其自身和父页面上)。 在FF上一切正常,在IE中所有功能也正常。 但是IE中的性能非常慢...主要功能之一是在鼠标向上移动时更改某些图片的不透明度,而IE显示新的不透明度需要2s +。 为什么? 更重要的是,我该如何解决?

预先感谢,艾琳

与其他主流浏览器相比,IE具有非常慢的JavaScript引擎(我是在说IE8,而不是IE9 +)……事实就是如此。 您可能要禁用IE中的某些功能,并且当然要对脚本进行整体优化。

例如,您可能想要禁用IE中的淡入淡出效果,或为其提供更少的帧(在步骤之间更长的间隔),因为其DirectX不透明度过滤器在大多数淡入淡出情况下比其他浏览器要慢得多。

为了分析特定于IE的性能问题,我强烈推荐dynaTrace AJAX版 ,它是专为IE制作的免费性能分析器。

基准测试可显示IE中的速度有多慢: http//www.favbrowser.com/chrome-vs-opera-vs-firefox-vs-internet-explorer-vs-safari/

您可能需要尝试使用各种操作DOM的方法来提高IE的性能。

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

看到代码将很方便,以便为您提供有关如何获得更好性能的提示。

好的,开始吧,这可能是造成大多数问题的脚本……有什么建议吗?

$(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");
            }
});
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM