1

我正在尝试用表格制作脚本,更快地在 Internet Explorer 上工作!!在铬上工作正常。有什么建议么??

您可以在此处查看现场演示http://megatrixads.com/cbm

提前致谢!

4

3 回答 3

2

正如上面的答案所说。尝试使用分析器。我一直在阅读 JS 的性能改进。这是一本很棒的书

我检查了你的代码,你可以做一些事情。

更快地呈现页面。首先添加所有 JS,而不是在 HEAD 中,但在所有 te 标记之后。所以在中心标签之后!这样 HTML/css 将在 JS 开始执行之前被加载/渲染。JS 的加载将停止所有渲染,因为 JS 能够更改 DOM 中的内容。

尝试使用 document.ready()

尝试将所有 JS 放在 1 个文件中并最小化或打包它 => 它将改善对服务器的请求的负载/nr。

我看到在您的 selectable() 语句中,您经常调用 $('.ui-selected') 和 $('.ui-selected').length() => 将此 el 存储在变量中。所以只要做 var $ui_selected = $('.ui-selected'); 这样 Jquery 就不会每次都搜索 DOM 来选择这个元素!(顺便说一下,使用类来查找元素的性能不如使用 #ID

我希望这些技巧对你有用!

于 2012-06-20T07:00:09.953 回答
1

考虑在 IE9 中使用内置的 Profiler:

F12(或工具-> 开发者工具)-> 探查器-> 开始探查。

如果您需要 IE7/IE8 更快地渲染,您仍然可以尝试在 IE9 中进行分析,看看是否存在明显的性能问题(例如对特定函数的调用过多)。请注意,大多数库对于 IE6-8 等旧版浏览器都有特殊的代码路径,因此在 IE9 中使用开发工具时可能需要强制浏览器/文档模式为 IE7/8 以查找特定问题。

于 2012-06-20T06:49:41.313 回答
1

我已经测试过从 js 对象生成地图,它在 IE 中就像一个魅力。

这是我用来从您的 html 生成地图对象的代码(我在运行它之前已经编辑了第一个 tr,所以它会生成正确的结果,tr 与 td 的格式与所有其他格式相同,使用 colspan)

$(document).ready(function() {

   var trIndex = 0,
       mapObj = {},
       tdIndex = 0;; 

   $table = $('.selectable');

   $('tr', $table).each(function() {
       mapObj[trIndex] = [];
       tdIndex = 0;
       $('td', $(this)).each(function() {
           if($(this).attr('colspan') > 0) {
               mapObj[trIndex][tdIndex] = {colspan: $(this).attr('colspan')}
           } else {
               mapObj[trIndex][tdIndex] = {id: $(this).attr('id')}
           }
           tdIndex++;
       });
       trIndex++;
   })
   console.log(JSON.stringify(mapObj));
}); 

然后我用这个对象来生成表,你需要的表是:

<table width="1160px" height="695px" class="selectable"></table>

生成地图的 JavaScript,因为生成的对象太大而无法在此处发布,所以我放了一把。这是链接:http: //jsfiddle.net/u8AwJ/

当然代码可以优化更多,但目前时间对我来说是有限的。

这仅与生成地图有关(我已经删除了您的操作,因此我可以使其工作 - 我的意思是渲染)。你可以把那部分加回去。

于 2012-06-20T11:28:49.317 回答