Javascript 終止腳本

1.應用場景

主要用於終止js腳本執行, 如代碼調試[不太推薦]. 業務邏輯需要.

2.學習/操作

1. function中的return false 與 return的區別?   //前者返回的是bool值false, 後者返回的是undefined

 

return語句終止函數的執行,並返回一個指定的值給函數調用者。

 

語法

return [[expression]];

 

expression

表達式的值會被返回。如果忽略,則返回 undefined

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/return  //推薦實踐

 

 

2. 函數外[即js任意地方腳本], 如何終止?

JavaScript是一門單線程但是可處理異步任務的腳本語言, 是沒有提供sleep等類似的方法的, 當有需求需要暫停js腳本時,

可以使用以下的方法.

單線程分析

 

一, alert, comfirm彈窗暫停

js的alert, confirm彈窗類方法, 是可以暫停js腳本執行的.  //也是因爲這個原因, 調試前端代碼並不推薦使用alert();

例如:

<script>

console.log(1);

alert(1);

console.log(2);

</script>

截圖: 

這樣彈窗,是需要點擊確認纔會執行下面的語句的

就算是定時器也一樣暫停.

<script>

var i=0;

setInterval(function(){

    console.log(i);

    i++;

    if(i==5){

        alert(i);

    }

},500)

</script>

截圖: 

 

 

二, while() 方法暫停

while方法可以暫停, 但是會影響瀏覽器性能, 並且不好控制.

<script>

var i=0;
console.log(new Date());
while(i<5000000000){
    i++;
}
console.log(new Date());

</script>

截圖:

只要控制下while的判斷條件,就可以實現暫停了.

 

三, ajax同步請求方法

此方法需要服務器協作才能實現, 這裏就暫時不做測試, 而且不建議使用.

 

大概步驟就是:

ajax同步 [設置一個參數即可] 請求服務器,

帶上一個參數time,

服務器接收之後,

sleep(time),  //如: php

到時間再輸出, 回到ajax回調函數, 在這個時間 內,ajax是停止狀態的.

 

總結:

Js是不能暫停腳本的, 上面的方法, 只是搶佔當前瀏覽器線程, 相當於該線程的某個語句一直還停留在當前瀏覽器線程.

如:while, 當前還未執行完while循環該方法,所以不能退出該線程, 不讓切換執行, 所以實現了'暫停'.

 

 

 

後續補充

...

3.問題/補充

TBD

4.參考

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/return  //return

https://www.php.cn/js-tutorial-388768.html  //怎樣讓js暫停執行

後續補充

...

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章