liquid_zigong
小狐狸
小狐狸
  • UID6844
  • 注册日期2005-06-17
  • 最后登录2006-12-22
  • 发帖数29
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:1948回复:1

如何firefox 的 javascript 的运行效率

楼主#
更多 发布于:2006-02-19 16:47
function bb(s,r){

if(r=="1"){

document.write(s);

return false;

}

s=s.replace(/\[b\]/g,'<b>');

s=s.replace(/\[\/b\]/g,'</b>');

s=s.replace(/\[u]/g,'<u>');

s=s.replace(/\[\/u]/g,'</u>');

s=s.replace(/\[i]/g,'<i>');

s=s.replace(/\[\/i]/g,'</i>');

s=s.replace(/\[list\]/g,'<ul>');

s=s.replace(/\[\/list\]/g,'</ul>');

s=s.replace(/\[olist\]/g,'<ol>');

s=s.replace(/\[\/olist\]/g,'</ol>');

s=s.replace(/\[hr]/g,'<hr width=40% align=left siez=1>');

s=s.replace(/\[\/list\]/g,'</ul>');

s=s.replace(/\[sub]/g,'<sub>');

s=s.replace(/\[\/sub]/g,'</sub>');

s=s.replace(/\#([0-9]{3})\#/g,"[img]http://photobucket.com/albums/v466/onihimeyuki01/kunlunland/smile/$1.gif[/img]");

s=s.replace(/\[font=([^\[]*)\](.+?)\[\/font\]/g,"<font face=\"$1\">$2</font>");

s=s.replace(/\[size=(1|2|3|4|5)\](.+?)\[\/size\]/g,"<font size=\"$1\">$2</font>");

s=s.replace(/\[color=([#0-9a-z]{1,10})\](.+?)\[\/color\]/ig,"<font color=\"$1\">$2</font>");

s=s.replace(/\[url=([^\[]*)\](.+?)\[\/url\]/ig,"<a href=$1 target=_blank>$2</a>");

s=s.replace(/\[url\]www\.([^\[]*)\[\/url\]/ig,"<a href=\"http://www.$1\" target=_blank>[url]www.$1</a>[/url]");

s=s.replace(/\[url\]([^\[]*)\[\/url\]/ig,"<a href=\"$1\" target=_blank>$1</a>");

s=s.replace(/\[quote\]\s*(.*?)\s*\[\/quote\]/g,"<table cellpadding=5 cellspacing=1 border=0 bgcolor=000000><tr><td bgcolor=ccddee>���ã� <br>$1</td></tr></table>");

s=s.replace(/(\[align=)(left|center|right)(\])(.+?)(\[\/align\])/g,"<div align=$2>$4</div>");

s=s.replace(/\[img\]\s*(\S+?)\s*\[\/img\]/ig,"<img src=$1 border=0>");

s=s.replace(/\[attach\]\s*(.*?)\s*\[\/attach\]/g,"<font color=blue>����</font><br><table cellpadding=0 cellspacing=5 border=0 class=header class=attach><tr><td class=c>$1</td></tr></table>");

document.write(s);

}


以上代码,对于较长字符串,FX要比IE慢许多倍。
测试结果(运行1000次)
FX(1.5.0.1): 578ms 594ms 593ms 594ms 594ms
IE: 172ms  156ms  140ms  156ms  157ms  

如何解决以上代码的问题?(从提高replace方法效率来看)
placeless
狐狸大王
狐狸大王
  • UID9583
  • 注册日期2005-11-04
  • 最后登录2022-12-02
  • 发帖数475
  • 经验22枚
  • 威望0点
  • 贡献值12点
  • 好评度1点
  • 社区居民
1楼#
发布于:2006-02-19 16:47
虽然不懂,但是顶起来先。。。。。。。
既非IE走狗,也非opera喽罗,木有火狐不上网...
游客

返回顶部