多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > web前端 > jscript > 避免js無限循環(huán)引起的假死或cpu100%

避免js無限循環(huán)引起的假死或cpu100%

來源:程序員人生   發(fā)布時間:2014-04-14 00:46:46 閱讀次數(shù):4490次

  本文內(nèi)容很簡單,只是對面試中遇到的一個記不清楚的問題的復(fù)習(xí),鑒于是俺第一次在cnblog上發(fā)文,所以裝了防護盾,請勿以任何方式扔板磚、菜刀之類物品….

  今天去國內(nèi)某知名公司面試了一把,投的職位是 前端開發(fā),第一次去大公司面試,受到的感觸當(dāng)然是十分多多,感觸稍后補齊,整個過程沒啥有難度的技術(shù)問題,可能和該公司的產(chǎn)品方向有關(guān)吧(補充下,該公司主打不是做web的)。

  二輪面試的時候,產(chǎn)品經(jīng)理和我提到了他們產(chǎn)品中遇到的一個問題,大概意思是:他們某個功能,在頁面做無限循環(huán)顯示數(shù)據(jù)的時候,會造成CPU,100%。 當(dāng)時產(chǎn)品經(jīng)理也只是稍微給我演示了下,因為當(dāng)時我腦子一直在想,這個問題為啥在自己以前用JS模擬多線程的時候沒有出現(xiàn),所以對他說的相關(guān)的信息也沒注意聽,界面也只是看了個大概,當(dāng)時我也只提出使用 setTimeout 或 setInterval 來做的話,會避免這個問題,不過距我上次做多線程Demo的日子過的太長,有點模糊了,我也沒有百分百把握,所以回家后趕緊翻出以前的代碼出來整理出答案,如下:

  代碼簡單,我也就懶得寫注釋了,以下是循環(huán)次數(shù) 和 設(shè)置DIV innerHTML的2個函數(shù)。

以下為引用的內(nèi)容:
function $(id) {
return document.getElementById(id);
}
var setter = function() {
var ele = $("containder");
return function(count) {
ele.innerHTML = count;
}
}();
var counter = function() {
var count = 0;
return function() {
count++;
setter(count);
};
} ();

  估計沒人會像 測試1 這樣用,瀏覽器直接卡死。

  Test1:

以下為引用的內(nèi)容:
<script type="text/javascript">
  (function() {
  while (1) {
  counter();
  }
 })
  ();
 </script>

  測試二使用 setInterval 方法,CPU使用量 和 IE所占內(nèi)存都很少,一般CPU就是在0-2%之間,和while 的循環(huán)基本能達(dá)到同樣的效果。至于為啥出現(xiàn)這樣的原因,小弟不敢妄自猜測,避免誤導(dǎo)新人。希望有了解JS引擎的出來講解講解…

  Test2:

以下為引用的內(nèi)容:
<script type="text/javascript">
(function() {
window.setInterval("counter();", 1);
})();
</script>

  按照產(chǎn)品經(jīng)理那樣的界面去大概顯示數(shù)據(jù),大概是有接口會自動提供數(shù)據(jù),前端調(diào)用處理字符串就好了…

  Test3完整代碼:

  <div id="containder" style="overflow:scroll;"></div>

以下為引用的內(nèi)容:
<script type="text/javascript">
function $(id) {
return document.getElementById(id);
}
var data = [];
var createdata = function() {
data.push(+new Date() + "|" + (+new Date()));
};
var setter = function() {
var ele = $("containder");
var list = [];
return function(text) {
if (!text)
return;
list.push(text);
if (list.length > 10)
list.shift();
ele.innerHTML = list.join("<br/>");
}
} ();
var counter = function() {
var count = 0;
return function() {
count++;
setter(data.shift());
};
} ();
(function() {
window.setInterval("createdata();", 1);
window.setInterval("counter();", 1);
})
();
</script>

  本文的第二個目的也是給大家提個醒,其實面試很多時候都是問些基礎(chǔ)的操作.

  第一次使這東西,感覺挺麻煩.先測試下都...

  作者:低調(diào)的

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲大成色www永久网址 | 国产95在线 | 亚洲 | 久久久毛片免费全部播放 | 男人午夜视频在线观看 | 欧美日韩乱国产 | www日本免费| 国产成人毛片视频不卡在线 | 成人私拍福利视频在线 | 国产a网 | 性欧美高清久久久久久久 | 国产成人一区二区三区在线视频 | 国产91一区二区在线播放不卡 | 欧美色视频日本 | 久久精品影院一区二区三区 | 成人久久久久久 | 欧美一级日韩在线观看 | 亚洲图片自拍偷拍 | 曰本人做爰大片免费观看一 | 国产欧美日韩精品一区二区三区 | 宇都宫紫苑在线播放ed2k | 国产视频自拍一区 | 成人精品美女隐私漫画 | 最新亚洲 | www.亚洲黄色 | 亚洲欧美日韩高清 | 久久乐国产综合亚洲精品 | 欧美性xxx久久 | 日韩欧美中文字幕一区 | v片免费观看 | 白浆都出来了视频国产精品 | 国产视频二区在线观看 | 最新毛片久热97免费精品视频 | 欧美视频一区二区在线观看 | 玖玖色资源站 | 自拍亚洲欧美 | 久久精品国内一区二区三区 | 伊人久久精品成人网 | 亚洲精品第一页中文字幕 | 国产精品亚洲综合一区 | 中文字幕第一页在线视频 | 国产一区二区免费在线 |