发布于 2016-12-31 02:25:06 | 141 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

Javashop Java网店系统

Javashop是基于Java技术构建的电子商务平台,采用EOP(Enation open platform易族开放平台)框架体系,精美的界面模板,更具人性化的操作体验,内置库存管理系统,完备的订单流程,适合搭建稳定、高效的B2C电子商务平台,同时Javashop的模板引擎及组件机制让扩展变得简单,更有大量第三方组件可供选择,极大的降低二次开发成本。


看到项目里通过js数组split方法格式化查询字符串的,突发奇想为什么不能用正则呢,性能如何?感兴趣的朋友可以研究下哦
看到项目里通过js数组split方法格式化查询字符串的,突发奇想为什么不能用正则呢,性能如何?于是便有了如下代码:
 
var url='www.baidu.com?a=123&b=456&c=789&e=dfsdfsdfsdfsdfsdfsdf&f=46545454545454785&g=e23232dsfvdfvdf'; 
/** 
* 格式化查询字符串(正则实现) 
* @param url url地址 
* @return {Object} 格式化的json对象 
*/ 
function formatUrl(url){ 
var reg=/(?:[?&]+)([^&]+)=([^&]+)/g; 
var data={}; 
function fn(str,pro,value){ 
data[decodeURIComponent(pro)]=decodeURIComponent(value); 
} 
url.replace(reg,fn); 
return data; 
} 
/** 
* 格式化查询字符串(数组实现) 
* @param url url地址 
* @return {Object} 格式化的json对象 
*/ 
function formatUrl2(url){ 
url=url.replace(/.*\?/,''); 
var args={}, 
items=url.length?url.split("&"):[] 
,item=null 
,i=0 
,len=items.length; 
for(i=0;i<items.length;i++){ 
item=items[i].split("="); 
args[decodeURIComponent(item[0])]=decodeURIComponent(item[1]); 
} 
return args; 
} 
var startTime=new Date(); 
for(var i=0;i<1000000;i++){ 
formatUrl2(url); 
} 
console.log('formatUrl2',(new Date()-startTime)); //formatUrl2 12138 
startTime=new Date(); 
for(var i=0;i<1000000;i++){ 
formatUrl(url); 
} 
console.log('formatUrl',(new Date()-startTime)); //formatUrl 12537 

测试浏览器是chrme 25;正则实现的函数居然比数组实现的函数要慢(泪奔....)。不过还好,在重复执行一百万次的情况下只慢0.4秒

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务