色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 暫停 重啟

劉柏宏1年前5瀏覽0評論

JavaScript暫停重啟是指在程序運行過程中,暫時停止代碼的執行,然后在合適的時機重新啟動程序。這種技術在很多Web應用程序中非常重要,例如多媒體播放器以及游戲等。

一個很好的例子是圖像幻燈片,其中一個按鈕允許用戶在運行幻燈片時暫停它們。最初的JS代碼在下面的代碼塊中:

var imgCounter = 0;
var imgArray = new Array("image1.jpg", "image2.jpg", "image3.jpg");
var totalImages = imgArray.length - 1;
function displayImage(){
document.getElementById("slideshow").src = imgArray[imgCounter];
imgCounter++;
if(imgCounter >totalImages){
imgCounter = 0;
}
setTimeout("displayImage()",1000);
}
displayImage();

這段代碼使得三張圖片按順序瀏覽,每一張顯示一秒鐘,輪流播放。但是,如果要添加一個按鈕來讓用戶控制幻燈片的暫停/繼續,該怎么辦呢?

答案是,可以使用HTML5的Web Workers功能。我們可以利用這個功能來創建一個新的JavaScript進程,該進程可以控制當我們調用暫停和繼續函數時,程序的流程。下面是一個簡單的例子:

var worker = new Worker('worker.js');
worker.postMessage("");  // Start the worker
worker.onmessage = function(e) {
// Do something with the result
document.getElementById("result").innerHTML = e.data;
}
function pause(){
worker.postMessage("pause");
}
function resume(){
worker.postMessage("resume");
}

這里,我們創建了一個名為“worker.js”的新JavaScript文件,并通過worker.postMessage()方法將一些信息發送到該文件中。當該文件被啟動時,我們設置一個回調函數,該函數會在worker向外發送消息時被調用。我們還定義了“暫停”和“恢復”函數,這兩個函數通過worker.postMessage()方法來通知worker進程暫停或恢復執行。

現在,讓我們來看看在worker.js文件中實現的代碼:

var imgCounter = 0;
var imgArray = new Array("image1.jpg", "image2.jpg", "image3.jpg");
var totalImages = imgArray.length - 1;
var isPaused = false;
onmessage = function(e) {
if(e.data == "pause"){
isPaused = true;
}
else if(e.data == "resume"){
isPaused = false;
displayImage();
}
}
function displayImage(){
if(!isPaused){
postMessage(imgArray[imgCounter]);
imgCounter++;
if(imgCounter >totalImages){
imgCounter = 0;
}
setTimeout("displayImage()",1000);
}
else{
setTimeout("displayImage()",1000);
}
}

這段代碼很類似于我們最初的JavaScript,但是,現在我們包括了isPaused變量來表示代碼是否應該暫停。當收到worker.postMessage("pause")消息時,我們將isPaused設置為true。當收到worker.postMessage("resume")消息時,我們將isPaused設置為false,然后調用displayImage()函數來恢復程序的運行。

總結一下,JavaScript暫停重啟是一個非常重要的技術,可以讓我們構建更復雜的應用程序,例如多媒體播放器和圖像幻燈片。通過使用HTML5的Web Workers功能,我們可以在JavaScript代碼運行的同時控制程序的流程,并且在幻燈片暫停時暫停代碼的執行。