如何在JavaScript中實現某個方法執行超時後則繼續執行其它方法?
我的一個想法是這樣的,如下程式碼:
[code]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>JavaScript方法執行超時測試</title>
<script>
var executed = false; // 方法B是否執行的標誌位
var x = 0; // 方法A中用來累加計數,使方法A執行超時
var expiredTime = 3000;
// 方法A
function methodA( )
{
// 第一句就執行定時器
setTimeout("methodB()",expiredTime);// setInterval()
// 方法A的耗時內容執行開始
x = x + 1;
document.counter.displayBox.value = x;
for(i = 0;i < 80000;i++)
{
window.status = "i=" + i;
}
// 方法A的耗時內容執行結束
// 當方法A的耗時內容沒有超過expiredTime的時間執行完成的話,就直接開始執行方法B
methodB();
// 設定方法B執行完成的標誌位
executed = true;
}
// 方法B
function methodB()
{
if(executed == true)
{
// 執行過了......
}
else
{
// 執行......
}
}
</script>
</head>
<body>
<form name="counter">
<input type="text" name="displayBox" value="0" size="10"/>
</form>
<script>
methodA();
</script>
</body>
</html>
[/code]
異想天開,想用 setTimeout 來做個 workaround ,但是 setTimeout / setInterval 方法是在它所在的方法執行完之後才開始計時的,於是,光噹一聲,這個 workaround 不成立。
各位有沒有做過類似的需求,如何解決的呢?
[code]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>JavaScript方法執行超時測試</title>
<script>
var executed = false; // 方法B是否執行的標誌位
var x = 0; // 方法A中用來累加計數,使方法A執行超時
var expiredTime = 3000;
// 方法A
function methodA( )
{
// 第一句就執行定時器
setTimeout("methodB()",expiredTime);// setInterval()
// 方法A的耗時內容執行開始
x = x + 1;
document.counter.displayBox.value = x;
for(i = 0;i < 80000;i++)
{
window.status = "i=" + i;
}
// 方法A的耗時內容執行結束
// 當方法A的耗時內容沒有超過expiredTime的時間執行完成的話,就直接開始執行方法B
methodB();
// 設定方法B執行完成的標誌位
executed = true;
}
// 方法B
function methodB()
{
if(executed == true)
{
// 執行過了......
}
else
{
// 執行......
}
}
</script>
</head>
<body>
<form name="counter">
<input type="text" name="displayBox" value="0" size="10"/>
</form>
<script>
methodA();
</script>
</body>
</html>
[/code]
異想天開,想用 setTimeout 來做個 workaround ,但是 setTimeout / setInterval 方法是在它所在的方法執行完之後才開始計時的,於是,光噹一聲,這個 workaround 不成立。
各位有沒有做過類似的需求,如何解決的呢?
相關文章
- Java多種方法實現等待所有子執行緒完成再繼續執行Java執行緒
- Thread 中的 join() 方法的作用是呼叫執行緒等待該執行緒執行完後,再繼續執行thread執行緒
- 某知名OA命令執行方法探索(續)
- 當主執行緒崩潰而其它執行緒繼續執行時發生什麼(2)(轉)執行緒
- 當主執行緒崩潰而其它執行緒繼續執行時發生什麼(1)(轉)執行緒
- php返回資料後如何讓程式繼續執行其它操作PHP
- drools執行完某個規則後終止別的規則執行
- 主執行緒等待所有其他執行緒執行完畢,然後再繼續執行主執行緒的邏輯,有以下幾種方法可以實現:執行緒
- drools執行String規則或執行某個規則檔案
- 如何讓spring boot 啟動後就執行某個方法Spring Boot
- 多執行緒訪問—限制某個方法只執行一次執行緒
- 教你如何在Golang中執行JavaScriptGolangJavaScript
- JavaScript 編寫和執行方法JavaScript
- 同時多個SQL命令執行的方法SQL
- java實現多執行緒的方法Java執行緒
- Java多執行緒的實現方法Java執行緒
- Golang 單元測試執行 _test.go 中的某個 func 方法Golang
- 執行時Hook所有Block方法呼叫的技術實現HookBloC
- 讓 python 執行地超快的 10 個方法Python
- java中異常丟擲後程式碼還會繼續執行嗎Java
- 使用Runnable介面實現執行緒的方法執行緒
- Java多執行緒【三種實現方法】Java執行緒
- 確保某個BeanDefinitionRegistryPostProcessor Bean被最後執行的幾種實現方式Bean
- onDestroy方法被延時執行~事件事件
- 判斷某過程是否在執行的方法
- Java執行緒池核心執行緒用盡後為何優先排隊而不是繼續建立執行緒直至最大執行緒數?Java執行緒
- Oracle中JOB的建立後不執行解決方法Oracle
- Java中實現執行緒安全HashSet的幾種方法 | baeldungJava執行緒
- Java多執行緒-執行緒池ThreadPoolExecutor構造方法和規則Java執行緒thread構造方法
- Thread.join()方法實現main()方法等待所有子執行緒執行完成[base jdk8]threadAI執行緒JDK
- Linux檢視某個程式的執行緒的3種方法Linux執行緒
- JVM程式用一個主執行緒來執行main()方法JVM執行緒AI
- 瀏覽器退出之後php還會繼續執行麼?瀏覽器PHP
- JavaScript如何實現多執行緒?JavaScript執行緒
- Java調優—Btrace監控Java執行緒/方法執行引數、執行時間(Windows)Java執行緒Windows
- linux熱開關超執行緒方法Linux執行緒
- PHP多執行緒的實現方法詳解PHP執行緒
- java執行緒執行緒休眠,sleep方法Java執行緒