導航:首頁 > 廢水知識 > 什麼時候用js的回調

什麼時候用js的回調

發布時間:2022-06-07 01:22:37

Ⅰ 什麼是JS回調函數

回調函數就是某個函數執行完畢後執行的函數,沒什麼的啊。比如:
function(callback){
// 代碼
// 以上代碼執行完畢後執行回調函數
if(typeof callback === "function"){
callback();

}

}
這是因為js中函數可以當做參數直接傳遞進去。

Ⅱ 什麼是JavaScript中的回調函數,作用是什麼

var req;
function validate() {
var idField = document.getElementById("userid");
var url = "Validate.jsp?id=" + encodeURI(idField.value);
init();
req.open("GET", url, true);
req.onreadystatechange = callback;
//callback就是回調函數,當觸發req.onreadystatechange時,調用callback獲取url傳回的東西
req.send(null);
}

function init() {
if(window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
}

function callback() {
if(req.readyState == 4) { //反饋回到客戶端
if(req.status == 200) { //反饋完全正常
//alert(req.responseText);
var msg = req.responseXML.getElementsByTagName("msg")[0];
//alert(msg);
setMsg(msg.childNodes[0].nodeValue);
}
}
}

function setMsg(msg) {// 頁面中的span <span id="usermsg"></span>
//alert(msg);
mdiv = document.getElementById("usermsg");
if(msg == "invalid") {
mdiv.innerHTML = "<font color='red'>username exists</font>";
} else {
mdiv.innerHTML = "<font color='green'>congratulations! you can use this username!</font>";
}
}

Validate.jsp

<%
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-store"); //HTTP1.1
response.setHeader("Pragma", "no-cache"); //HTTP1.0
response.setDateHeader("Expires", 0); //prevents catching at proxy server
System.out.println(request.getParameter("id"));
//check the database 可以先去資料庫取
response.getWriter().write("<msg>valid</msg>");//寫這個內容,隨便指定
%>

Ⅲ 請問在JavaScript中,「回調函數」是一種具體用法,還是一種編程思想

「回調」是一種編程思想,「回調函數」是一個函數。
js裡面回調主要兩種方式體現:
一種是把函數本身當作一個參數傳遞,需要回調的之後直接執行。

Ⅳ JS回調函數

回調函數可以繼續擴展一個函數的功能,可以是程序非常靈活。
比如:
function
showDiv(callback){
$("#div1").show();
callback($("#div1"));
}
showDiv(function($div){
$div.text("hello
world");
});
//原本showDiv的功能就是現實一個div,加了callback函數當參數後就可以在執行完show之後改變div中的文字。
一般來說,callback函數用在非同步中的例子比較多,因為在非同步調用中,只能通過回調函數繼續執行某個動作。
例如:
function
myThread(callback){
return
setTimeout(1000*10,function(){
$("#div").append("<p>hello</p>");//10秒後在div中加一個行,然後在執行callback函數
callback();
});
}

Ⅳ js回調函數有什麼用

傳遞函數作為回調

很容易把一個函數作為參數傳遞。

functionfn(arg1,arg2,callback){
varnum=Math.ceil(Math.random()*(arg1-arg2)+arg2);
callback(num);//傳遞結果
}
fn(10,20,function(num){
console.log("Callbackcalled!Num:"+num);
});//結果為10和20之間的隨機數

可能這樣做看起比較麻煩,甚至有點愚蠢,為何不正常地返回結果?但是當遇上必須使用回調函數之時,你也許就不這樣認為了!

傳統函數以參數形式輸入數據,並且使用返回語句返回值。理論上,在函數結尾處有一個return返回語句,結構上就是:一個輸入點和一個輸出點。這比較容易理解,函數本質上就是輸入和輸出之間實現過程的映射。

但是,當函數的實現過程非常漫長,你是選擇等待函數完成處理,還是使用回調函數進行非同步處理呢?這種情況下,使用回調函數變得至關重要,例如:AJAX請求。若是使用回調函數進行處理,代碼就可以繼續進行其他任務,而無需空等。實際開發中,經常在javascript中使用非同步調用,甚至在這里強烈推薦使用!

下面有個更加全面的使用AJAX載入XML文件的示例,並且使用了call()函數,在請求對象(requested object)上下文中調用回調函數。

functionfn(url,callback){
varhttpRequest;//創建XHR
httpRequest=window.XMLHttpRequest?newXMLHttpRequest()://針對IE進行功能性檢測
window.ActiveXObject?newActiveXObject("Microsoft.XMLHTTP"):undefined;

httpRequest.onreadystatechange=function(){
if(httpRequest.readystate===4&&httpRequest.status===200){//狀態判斷
callback.call(httpRequest.responseXML);
}
};
httpRequest.open("GET",url);
httpRequest.send();
}

fn("text.xml",function(){//調用函數
console.log(this);//此語句後輸出
});

console.log(".");//此語句先輸出

我們請求非同步處理,意味著我們開始請求時,就告訴它們完成之時調用我們的函數。在實際情況中,onreadystatechange事件處理程序還得考慮請求失敗的情況,這里我們是假設xml文件存在並且能被瀏覽器成功載入。這個例子中,非同步函數分配給了onreadystatechange事件,因此不會立刻執行。

最終,第二個console.log語句先執行,因為回調函數直到請求完成才執行。

Ⅵ js回調函數是干什麼的呢

1、回調函數的概念

回調是一個函數,它作為參數傳遞給另一個函數,並在其父函數完成後執行。

function doSomething(msg, callback){

alert(msg);

if(typeof callback == "function")

callback();

}

doSomething("回調函數", function(){

alert("匿名函數實現回調!");

});


2、通常使用場景:

從上面的例子,我們可以看出回調與同步、非同步並沒有直接的聯系,回調只是一種實現方式,既可以有同步回調,也可以有非同步回調,還可以有事件處理回調和延遲函數回調,這些在我們工作中有很多的使用場景。

Ⅶ 各位大牛,我現在在JS方法中遇到回調函數的問題。請問一下回調函數是怎麼使用的,在什麼時候返回

父窗口可以在取得iframe對象以後(document.getElementById)以後(比如ifa),用ifa.function1()來調用iframe裡面window.function1函數,iframe裡面的js可以用parent.function2()來調用父窗口裡面的window.function2函數。

賦值的話就更簡單了,ifa.aaa = 0,就是把子窗口裡面的window.aaa賦值為0了,子窗口裡面的js直接用window.aaa就可以取得這個值,同理,iframe裡面的js用parent.bbb = 1,就是把父窗口的window.bbb賦值為1了,父窗口就可以用window.bbb來取用這個值了。

Ⅷ node.js回調函數什麼時候調用

1.阻塞調用(讀取完文件再執行後面的操作)

?

1

2

3

4

var fs = require("fs");

var data = fs.readFileSync('/fs.txt');

console.log(data.toString());

console.log("程序執行結束!");

輸出結果:

「文件內容」

「程序執行結束!」

2.非阻塞調用(讀取文件和其他操作同步執行)

?

1

2

3

4

5

6

var fs = require("fs");

fs.readFile('/fs.txt',function(err,data){

if(err) return console.error(err);

console.log(data.toString());

});

console.log("程序執行結束!");

輸出結果:

「程序執行結束!」

「文件內容」

如果我們每行代碼的執行都不依賴於上一行代碼的執行結果,那沒問題,順序執行就好。
但是如果我們某行代碼的執行,依賴於上一行代碼的結果,這個時候就需要回調函數了。我們必須要使用回調函數返回上一行代碼的結果,然後才能繼續執行這一行代碼。

閱讀全文

與什麼時候用js的回調相關的資料

熱點內容
換機油濾芯會有什麼後果 瀏覽:793
櫻花校園模擬器里怎樣提升好感度 瀏覽:174
廢水儲存池 瀏覽:450
反滲透膜制備的難點 瀏覽:35
反滲透膜價格實惠上海保茲 瀏覽:122
處理污水起大泡什麼原因 瀏覽:308
反滲透凈水機五根管子都是什麼 瀏覽:379
加濕器純凈水和蒸餾水 瀏覽:103
明敷掛管污水管道 瀏覽:666
3301樹脂耐高溫 瀏覽:264
家裡的鐵鍋如何除垢 瀏覽:808
樹脂滴膠網上有教程 瀏覽:278
水立方等離子空氣凈化器多少錢 瀏覽:32
沁園凈水機濾芯怎麼購買優惠 瀏覽:637
除垢劑的英語 瀏覽:692
雨水井與污水井是不是相通的 瀏覽:980
2016款尼桑逍客空調濾芯怎麼更換 瀏覽:571
雲霧感的環氧樹脂 瀏覽:171
小型家用蒸餾酒設備 瀏覽:117
遼陽室內凈化器多少錢一台 瀏覽:87