JavaScript的死循環可以卡死瀏覽器?那是IE6,只有IE6才會那么沒出息!現代瀏覽都是標簽頁的模式,有些還是獨立頁面進程的,怎么會因為個小小的JavaScript死循環而卡死呢?雖然JavaScript的循環的優先級很高,但它只是主線程的一個組成部分而已。
上一篇的測試代碼中也有類似的部分,但是使用了CSS2的margin,所以JavaScript死循環時它就不動了。但實際上在Chrome中,即使程序是死循環狀態,CSS3也會繼續播放動畫。但僅限修改CSS3的屬性,例如transform。像margin、left這樣的CSS2的屬性依然會被阻斷。
運行<style>
div {
width:50px;height:50px;
background:#FDD000;color:#FFF;
text-align:center;font:32px/50px Arial;
-webkit-animation:test 2s linear infinite;
animation:test 2s linear infinite;
}
@-webkit-keyFrames test {
0% {-webkit-transform:translateX(0px);}
50% {-webkit-transform:translateX(200px);}
100% {-webkit-transform:translateX(0px);}
}
@keyFrames test {
0% {transform:translateX(0px);}
50% {transform:translateX(200px);}
100% {transform:translateX(0px);}
}
</style>
<div></div>
<hr/>
<input type="button" value="循環5秒" />
<script>
document.querySelector("input").onclick=function(){
for(var t=new Date;new Date-t<5000;);
};
</script>
點擊按鈕后按鈕都卡住了,但是Chrome中CSS3動畫還在不知疲倦的運行著。不過目前這是Chrome上獨有的問題,其它瀏覽器上死循環可以正常阻止CSS3動畫的。這個現象雖然不會在實際應用中造成什么影響,但是我們可以從這個現象看出代瀏覽器的實現方向:線程不是你想斷,想斷就能斷的。
網站標題:死循環無法阻止CSS3動畫
文章源于:http://m.newbst.com/news42/314592.html
成都網站建設公司_創新互聯,為您提供品牌網站設計、微信公眾號、App設計、電子商務、做網站、App開發
廣告
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯