|
導(dǎo)讀網(wǎng)頁的本質(zhì)就是超級文本標(biāo)記語言,通過結(jié)合使用其他的Web技術(shù)(如:腳本語言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強大的網(wǎng)頁。因而,超級文本標(biāo)記語言是萬維網(wǎng)(Web)編程的基礎(chǔ),也就是說萬維網(wǎng)是建立... 網(wǎng)頁的本質(zhì)就是超級文本標(biāo)記語言,通過結(jié)合使用其他的Web技術(shù)(如:腳本語言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強大的網(wǎng)頁。因而,超級文本標(biāo)記語言是萬維網(wǎng)(Web)編程的基礎(chǔ),也就是說萬維網(wǎng)是建立在超文本基礎(chǔ)之上的。超級文本標(biāo)記語言之所以稱為超文本標(biāo)記語言,是因為文本中包含了所謂“超級鏈接”點。 本篇文章給大家?guī)淼膬?nèi)容是關(guān)于JavaScript中回調(diào)函數(shù)與異步的講解(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。首先要知道的是,回調(diào)和異步不是同一個東西 callback 例子說到callback,大家都在javascript中遇到以下的例子 $('#id').on('click', function(){
//code
});
$('#id').setTimeout(function(){
//code
},1000);這些代碼用了這么久,知道怎么用,但是可能對回調(diào)的概念并不是那么清晰 再來個例子 function a(callback)
{
alert("執(zhí)行parent函數(shù)a!");
alert("開始調(diào)用回調(diào)函數(shù)");
callback();
alert("結(jié)束回調(diào)函數(shù)");
}
function b(){
alert("執(zhí)行回調(diào)函數(shù)b");
}
function test()
{
a(b);
a(function() {
alert("執(zhí)行匿名回調(diào)函數(shù)");
});
}
test();執(zhí)行順序: 執(zhí)行parent函數(shù)a! callback 原理簡單的說,就是把一個函數(shù)作為形參進行傳遞,上面的callback參數(shù)可以改為任意名字 callback 用 C++ 實現(xiàn)不帶參數(shù)回調(diào)#include <iostream>
using namespace std;
//定義回調(diào)函數(shù)
void Print()
{
cout <<"Hello World!\n";
}
//定義實現(xiàn)回調(diào)函數(shù)的"調(diào)用函數(shù)"
void Call(void (*callback)())
{
callback();
}
//在main函數(shù)中實現(xiàn)函數(shù)回調(diào)
int main(int argc,char* argv[])
{
Call(Print);
return 0;
}帶參數(shù)回調(diào)#include <iostream>
using namespace std;
//定義帶參回調(diào)函數(shù)
void Print(string s)
{
cout << s << endl;
}
//定義實現(xiàn)帶參回調(diào)函數(shù)的"調(diào)用函數(shù)"
void Call(void (*callback)(string),string s)
{
callback(s);
}
//在main函數(shù)中實現(xiàn)帶參的函數(shù)回調(diào)
int main(int argc,char* argv[])
{
Call(Print,"Hello World!");
return 0;
}異步例子經(jīng)典例子 function a(){
console.log('執(zhí)行a');
setTimeout(function(){
console.log('setTimeout');
}, 1000);
}
function b(){
console.log('執(zhí)行b');
}
a();
b();執(zhí)行順序: 異步原理 都知道js是單線程的,所謂的單線程就是一次只能完成一個任務(wù),其任務(wù)的調(diào)度方式就是排隊,毫無疑問,這樣的效率是不高的,后面的任務(wù)必須等到前面的任務(wù)執(zhí)行完畢后才能執(zhí)行,如果有一個比較耗時的操作,比如ajax請求,文件io 以上就是JavaScript中回調(diào)函數(shù)與異步的講解(代碼示例)的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章! 網(wǎng)站建設(shè)是一個廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護的網(wǎng)站。 |
溫馨提示:喜歡本站的話,請收藏一下本站!