精彩专题推荐:建站之入门课 建站之必修课 建站之关键课 网站价值所在 流量提高专题 css+div 标准 个人网站打造全过程
返回建站学首页
导航:
建站首页 | 网站设计 | 网站开发 | 网站运营 | 网页软件 | 建站指南 | 搜索优化 | 图像处理 | 视频教程 | 书籍教程 | 建站专题
当前位置:首页>网站设计>html/xhtml教程>正文

加快 DHTML 的一组技巧,吐血推荐!


来源:MSDN CHINA 时间:07-03-20 点击: 点击这里收藏本文


技巧 4:调用 createElement 和 insertAdjacentElement 方法比调用 insertAdjacentHTML 方法快。 


成批处理 DHTML 更新并调用一次 insertAdjacentHTML 方法可以提高性能,但是有时直接通过 DOM 创建元素效率更高。在下面的方案中,您可以尝试一下这两种方法并确定哪一种更快。

请显示

慢:

for (var i=0; i<100; i  )
  {
  divUpdate.insertAdjacentHTML( "beforeEnd", "<SPAN> 使用 insertAdjacentHTML() </SPAN>" );
}

快:

var node;
for (var i=0; i<100; i  )
{
  node = document.createElement( "SPAN" );
  node.innerText = " 使用 insertAdjacentElement() ";
  divUpdate.insertAdjacentElement( "beforeEnd", node );
}

扩展 SELECT 元素中的选项
对于上一条使用 HTML 文本方法的规则来说,将大量 OPTION(英文)元素添加到 SELECT(英文)中的情况是一种例外。这时候,使用 innerHTML 属性比调用 createElement 方法访问选项集合效率更高。 

技巧 5:使用 innerHTML 将大量选项添加到 SELECT 元素中。 


使用字符串连接操作来建立 SELECT 元素的 HTML 文本,然后使用此技巧设置 innerHTML 属性。对于数量特别大的选项,字符串连接操作也会影响性能。在此情况下,请建立一个数组并调用 Microsoft JScript?join(英文)方法来执行 OPTION 元素 HTML 文本的最终连接。

请显示

慢:

var opt;
divUpdate.innerHTML = "<SELECT ID='selUpdate'></SELECT>";
for (var i=0; i<1000; i  )
{
  opt = document.createElement( "OPTION" );
  selUpdate.options.add( opt );
  opt.innerText = "第 "   i   " 项";
}

快:

var str="<SELECT ID='selUpdate'>";
for (var i=0; i<1000; i  )
{
  str  = "<OPTION>第 "   i   " 项</OPTION>";
}
str  = "</SELECT>";
divUpdate.innerHTML = str;

更快:

var arr = new Array(1000);
for (var i=0; i<1000; i  )
{
  arr [i]  = " <OPTION>第 "   i   " 项</OPTION>";
}
divUpdate.innerHTML = "<SELECT ID='selUpdate'>"   arr.join()   "</SELECT>";

用 DOM 更新表
使用 DOM 方法插入表的行和单元格比使用 insertRow(英文)和 insertCell(英文)方法(DHTML table 对象模型的一部分)效率更高。尤其在创建大的表时,效率上的差别更加明显。

技巧 6:使用 DOM 方法建立大表。 


请显示

慢:

var row;
var cell;
for (var i=0; i<100; i  )
{
  row = tblUpdate.insertRow();
  for (var j=0; j<10; j  )
  {
    cell = row.insertCell();
    cell.innerText = "第 "   i   " 行,第 "   j   " 单元格";
  }
}

快:

var row;
var cell;
var tbody = tblUpdate.childNodes[0];
tblUpdate.appendChild( tbody );
for (var i=0; i<100; i  )
{
  row = document.createElement( "TR" );
  tbody.appendChild( row );
  for (var j=0; j<10; j  )
  {
    cell = document.createElement( "TD" );
    row.appendChild( cell );
    cell.innerText = "第 "   i   " 行,第 "   j   " 单元格";
  }
}

编写一次,使用多次
如果您的 Web 站点使用脚本来执行一些常用操作,可以考虑将这些功能放到独立的文件中,以便可以由多个 Web 页面重复使用。这样做,不仅可以改善代码的维护性,而且使该脚本文件保留在浏览器的缓存中,从而只需要在用户访问站点时向本地下载一次。将常用的样式规则放在独立的文件中也可以得到同样的好处。
9 7 3 1 2 3 4 8 :

  把此文章收藏到:          
广而告之
文章搜索
  • Google JZxue.Com

关于我们 | 联系我们 | 友情链接 | 网站地图
Copyright © 2005 - 2006 建站学 All rights reserved.