国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

javascript日期處理函數(shù),性能優(yōu)化批處理_基礎(chǔ)知識

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 21:43:19
文檔

javascript日期處理函數(shù),性能優(yōu)化批處理_基礎(chǔ)知識

javascript日期處理函數(shù),性能優(yōu)化批處理_基礎(chǔ)知識:其實網(wǎng)上寫javascript日期格式化的博文很多,大體都看了看,都還不錯。唯一遺憾的是只顧著實現(xiàn)了功能,沒對函數(shù)進行性能優(yōu)化。 俗話說:不要重復(fù)造輪子。google上找了一個比較不錯的日期格式化函數(shù),來開始我的優(yōu)化之旅吧! google上找的這個日期函數(shù)化函數(shù),
推薦度:
導(dǎo)讀javascript日期處理函數(shù),性能優(yōu)化批處理_基礎(chǔ)知識:其實網(wǎng)上寫javascript日期格式化的博文很多,大體都看了看,都還不錯。唯一遺憾的是只顧著實現(xiàn)了功能,沒對函數(shù)進行性能優(yōu)化。 俗話說:不要重復(fù)造輪子。google上找了一個比較不錯的日期格式化函數(shù),來開始我的優(yōu)化之旅吧! google上找的這個日期函數(shù)化函數(shù),
其實網(wǎng)上寫javascript日期格式化的博文很多,大體都看了看,都還不錯。唯一遺憾的是只顧著實現(xiàn)了功能,沒對函數(shù)進行性能優(yōu)化。
俗話說:不要重復(fù)造輪子。google上找了一個比較不錯的日期格式化函數(shù),來開始我的優(yōu)化之旅吧!
google上找的這個日期函數(shù)化函數(shù),估計大家都很眼熟,以前我也一直在用。先看看優(yōu)化后和優(yōu)化前的效率對比吧!
1、優(yōu)化之前的toDate函數(shù)(字符串轉(zhuǎn)換成Date對象),重復(fù)執(zhí)行1萬次,耗時660毫秒

javascript日期處置函數(shù),對批處理做了性能優(yōu)化

2、優(yōu)化之前的dateFormat函數(shù)(Date對象格式化成字符串),重復(fù)執(zhí)行1萬次,耗時676毫秒

javascript日期處置函數(shù),對批處理做了性能優(yōu)化

3、優(yōu)化過后的toDate函數(shù),重復(fù)執(zhí)行1萬次,耗時122毫秒

javascript日期處置函數(shù),對批處理做了性能優(yōu)化

4、優(yōu)化后的dateFormat函數(shù),重復(fù)執(zhí)行1萬次,耗時160毫秒

javascript日期處置函數(shù),對批處理做了性能優(yōu)化

為什么前后差別這么大,其實我也沒做多少處理,只是為批處理做了一些緩存而已,認真觀察所有網(wǎng)上那些日期格式函數(shù),其實都是用正則進行匹配和替換。其實正則是很耗性能的,于是我在正則匹配的地方做了緩存,把匹配值建立索引。以后就不用每次都去做正則匹配了。

無代碼無真相,接下來看看真相吧!

(function(window) {
 var sinojh = {
 Version : "1.2",
 Copyright : "Copyright© sino-jh 2012",
 Author : "Jeff Lan",
 Email : "jefflan@live.cn"
 };
 /**
 * 方便于添加和重寫類的屬性
 * @param {Object} attributes 添加的屬性
 */
 Function.prototype.prototypes = function(attributes) {
 for ( var a in attributes) {
 this.prototype[a] = attributes[a];
 }
 };
 /**
 * 獲取Url參數(shù)
 * @param {String} parameter 參數(shù)名
 * @return {String} 參數(shù)值
 */
 sinojh.getUrlParameter = function(parameter) {
 if (!sinojh.getUrlParameter.cache) {
 var url = window.location.href;
 var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
 var cache = {};
 for ( var i in paraString) {
 var j = paraString[i];
 cache[j.substring(0, j.indexOf("="))] = j.substring(j.indexOf("=") + 1, j.length);
 }
 sinojh.getUrlParameter.cache = cache;
 }
 return sinojh.getUrlParameter.cache[parameter];
 };
 /**
 * 日期格式化
 * @param {Date} date 日期對象
 * @param {String} formatStyle 格式化樣式
 * @return {String} 日期型字符串
 */
 sinojh.dateFormat = function(date, formatStyle) {
 formatStyle = formatStyle ? formatStyle : sinojh.dateFormat.settings.formatStyle;
 var time = {
 "M+" : date.getMonth() + 1,
 "d+" : date.getDate(),
 "h+" : date.getHours(),
 "m+" : date.getMinutes(),
 "s+" : date.getSeconds(),
 "S" : date.getMilliseconds()
 };
 if (formatStyle == sinojh.dateFormat.formatStyleCache) {
 var replaceCache = sinojh.dateFormat.replaceCache;
 if (replaceCache["y+"]) {
 formatStyle = formatStyle.replace(replaceCache["y+"].replace, (date.getFullYear() + "").substring(replaceCache["y+"].index));
 }
 for ( var k in time) {
 if (replaceCache[k]) {
 formatStyle = formatStyle.replace(replaceCache[k].replace, replaceCache[k].replace.length == 1 ? time[k] : ("00" + time[k]).substring(("" + time[k]).length));
 }
 }
 } else {
 sinojh.dateFormat.formatStyleCache = formatStyle;
 var replaceCache = {};
 if (new RegExp("(y+)").test(formatStyle)) {
 var index = 4 - RegExp.$1.length;
 replaceCache["y+"] = {
 replace : RegExp.$1,
 index : index
 };
 formatStyle = formatStyle.replace(RegExp.$1, (date.getFullYear() + "").substring(index));
 }
 for ( var k in time) {
 if (new RegExp("(" + k + ")").test(formatStyle)) {
 replaceCache[k] = {
 replace : RegExp.$1
 };
 formatStyle = formatStyle.replace(RegExp.$1, RegExp.$1.length == 1 ? time[k] : ("00" + time[k]).substring(("" + time[k]).length));
 }
 }
 sinojh.dateFormat.replaceCache = replaceCache;
 }
 return formatStyle;
 };
 sinojh.dateFormat.settings = {
 formatStyle : "yyyy-MM-dd hh:mm:ss"
 };
 /**
 * 將日期格式的字符串轉(zhuǎn)換成Date對象
 * @param {String} dateStr 日期格式字符串
 * @param {String} dateStyle 日期格式
 * @return {Date} 日期對象
 */
 sinojh.toDate = function(dateStr, dateStyle) {
 dateStyle = dateStyle ? dateStyle : sinojh.toDate.settings.dateStyle;
 var compare = sinojh.toDate.compare;
 var result = new sinojh.toDate.result();
 if (dateStyle == sinojh.toDate.settings.dateStyleCache) {
 var indexCache = sinojh.toDate.indexCache;
 for ( var k in compare) {
 if (indexCache[k]) {
 result[compare[k]] = dateStr.substring(indexCache[k].index, indexCache[k].index + indexCache[k].length);
 }
 }
 } else {
 var indexCache = {};
 for ( var k in compare) {
 if (new RegExp("(" + k + ")").test(dateStyle)) {
 var index = dateStyle.indexOf(RegExp.$1);
 var length = RegExp.$1.length;
 indexCache[k] = {
 index : index,
 length : length
 };
 result[compare[k]] = dateStr.substring(index, index + length);
 }
 }
 sinojh.toDate.indexCache = indexCache;
 sinojh.toDate.settings.dateStyleCache = dateStyle;
 }
 return new Date(result["y"], result["M"] - 1, result["d"], result["h"], result["m"], result["s"], result["S"]);
 };
 sinojh.toDate.compare = {
 "y+" : "y",
 "M+" : "M",
 "d+" : "d",
 "h+" : "h",
 "m+" : "m",
 "s+" : "s",
 "S" : "S"
 };
 sinojh.toDate.result = function() {
 };
 sinojh.toDate.result.prototypes( {
 "y" : "",
 "M" : "",
 "d" : "",
 "h" : "00",
 "m" : "00",
 "s" : "00",
 "S" : "000"
 });
 sinojh.toDate.settings = {
 dateStyle : "yyyy-MM-dd hh:mm:ss"
 };
 delete Function.prototype.prototypes;
 window.jh = sinojh;
}(this); 

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

javascript日期處理函數(shù),性能優(yōu)化批處理_基礎(chǔ)知識

javascript日期處理函數(shù),性能優(yōu)化批處理_基礎(chǔ)知識:其實網(wǎng)上寫javascript日期格式化的博文很多,大體都看了看,都還不錯。唯一遺憾的是只顧著實現(xiàn)了功能,沒對函數(shù)進行性能優(yōu)化。 俗話說:不要重復(fù)造輪子。google上找了一個比較不錯的日期格式化函數(shù),來開始我的優(yōu)化之旅吧! google上找的這個日期函數(shù)化函數(shù),
推薦度:
標(biāo)簽: 時間 處理 日期
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 亚洲va欧美va天堂v国产综合 | 国内视频一区二区三区 | 伊人久久综合成人网小说 | 黑丝草逼 | 日韩高清专区 | 欧美精品午夜久久久伊人 | 欧美性野久久久久久久久 | 国产精品日韩精品 | 亚洲免费久久 | 国产麻豆精品免费密入口 | 91在线一区二区 | 国产免费一区二区三区免费视频 | 999国产精品999久久久久久 | www.久久99| 欧美日韩中文字幕 | 亚洲欧美日韩在线观看 | 亚洲欧美另类日韩 | 日本三级韩国三级欧美三级 | 欧美日韩欧美 | 欧美精品亚洲人成在线观看 | 国产一级内谢a级高清毛片 国产最新精品视频 | 欧美日本免费一区二区三区 | 视频一区二区三区在线 | 国产精品视频不卡 | 久久精品视频一区二区三区 | 亚洲精品高清在线观看 | 亚洲一区二区精品视频 | 久久91精品国产91久久 | 亚洲欧美综合图片 | 国产成人精品视频一区二区不卡 | 国产日产欧美精品一区二区三区 | 国产成人精品一区二区免费 | 欧美日韩高清完整版在线观看免费 | 国产a久久精品一区二区三区 | 在线观看日韩精品 | 97一区二区三区四区久久 | 天天躁日日躁狠狠躁中文字幕老牛 | 欧美另类第一页 | 在线观看视频日韩 | 国产99久久 | 亚洲欧美日韩在线观看二区 |