不知大家对精华区的表格排序终极优化是否还有记忆,当时讨论的结果曾以为是最快的JS排序了,实则不然,按前段时间我发的DHTML性能提升帖(转译)所讲到的,DOM效率某些情况下并不如DHTML,比如一次写入大量数据时,DOM频繁创建添加反而更慢,所以可以对排序算法作修改:
    
JavaScript表格排序新法<table id="downloadList" border="1" width="100%" onclick="sortTable()">
JavaScript表格排序新法  
<tr>
JavaScript表格排序新法    
<td>AddCommonInfo.mxp</td>
JavaScript表格排序新法    
<td>MXP File</td>
JavaScript表格排序新法    
<td>2614</td>
JavaScript表格排序新法    
<td>2002-12-30 16:45:22,Fri</td>
JavaScript表格排序新法  
</tr>
JavaScript表格排序新法  
<tr>
JavaScript表格排序新法    
<td>addtemplateparam.mxp</td>
JavaScript表格排序新法    
<td>MXP File</td>
JavaScript表格排序新法    
<td>3100</td>
JavaScript表格排序新法    
<td>2002-12-5 13:28:24,Sun</td>
JavaScript表格排序新法  
</tr>
JavaScript表格排序新法
</table>
>
  

注意测试时将记录条数增加到500条以上,推荐1000条
我测试结果是平均1322ms左右
但这样就是最快的吗?非也,且看以下xml+xslt+js例子,能把时间缩短到721ms左右
需要准备三个文件
注意测试时将记录条数增加到500条以上,推荐1000条
我测试结果是平均1322ms左右
但这样就是最快的吗?非也,且看以下xml+xslt+js例子,能把时间缩短到721ms左右
需要准备三个文件
1. sort.xml文件 ---节省版面起见,这里只罗列两条记录

JavaScript表格排序新法<?xml version="1.0" encoding="UTF-8" ?>
JavaScript表格排序新法
<root>
JavaScript表格排序新法  
<record>
JavaScript表格排序新法    
<info>AddCommonInfo.mxp</info>
JavaScript表格排序新法    
<info>MXP File</info>
JavaScript表格排序新法    
<info>2614</info>
JavaScript表格排序新法
<info>2002-12-30 16:45:22,Fri</info>
JavaScript表格排序新法  
</record>
JavaScript表格排序新法  
<record>
JavaScript表格排序新法    
<info>addtemplateparam.mxp</info>
JavaScript表格排序新法    
<info>MXP File</info>
JavaScript表格排序新法    
<info>3100</info>
JavaScript表格排序新法    
<info>2002-12-5 13:28:24,Sun</info>
JavaScript表格排序新法  
</record>
JavaScript表格排序新法
</root>

2. sort.xsl 文件
    

JavaScript表格排序新法<?xml version="1.0"?>
JavaScript表格排序新法
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" version="1.0">
JavaScript表格排序新法
<xsl:template match="root">
JavaScript表格排序新法
<table border="1" width="100%">
JavaScript表格排序新法
<xsl:for-each select="record">
JavaScript表格排序新法
<tr>
JavaScript表格排序新法
<xsl:for-each select="info">
JavaScript表格排序新法
<td>
JavaScript表格排序新法
<xsl:value-of select="text()" />
JavaScript表格排序新法
</td>
JavaScript表格排序新法
</xsl:for-each> 
JavaScript表格排序新法
</tr>
JavaScript表格排序新法
</xsl:for-each>
JavaScript表格排序新法
</table> 
JavaScript表格排序新法
</xsl:template> 
JavaScript表格排序新法
</xsl:stylesheet>

3. default.html
    

 

JavaScript表格排序新法<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
JavaScript表格排序新法
<HTML>
JavaScript表格排序新法
<HEAD>
JavaScript表格排序新法
<TITLE> New Document </TITLE>
JavaScript表格排序新法
<META NAME="Generator" CONTENT="EditPlus">
JavaScript表格排序新法
<META NAME="Author" CONTENT="">
JavaScript表格排序新法
<META NAME="Keywords" CONTENT="">
JavaScript表格排序新法
<META NAME="Description" CONTENT="">
>


 

相关文章: