一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

javascript 異步編程

  這可能是個比較深的話題。何謂異步?

  籠統地說,異步在Javascript就是延時執行。嚴格來說,Javascript中的異步編程能力都是由BOM與DOM提供的,如setTimeout,XMLHttpRequest,還有DOM的事件機制,還有HTML5新增加的webwork, postMessage,等等很多。這些東西都有一個共同的特點,就是擁有一個回調函數,實現控制反轉。由于控制反轉是更深奧的問題,這里不想展開。不過有點可以確認的,回調函數的存在打斷了原來的執行流程,讓它們自行在適當的時機出現并執行,這是個非常便捷的模式。對比主動式的輪詢,你就知它多么節能。在同步編程,代碼基本上自上向下執行,在異步編程,一些代碼就要寫到回調函數中,如果代碼之間存在依賴,回調函數套回調函數的情況也不少見,這種套嵌結構對以后的維護來說簡直是地獄。還有一種我們不得不面對的情況,try...catch無法捕捉幾毫秒之后發生的異常。另外,除了setTimeout外,異步編程基本上由事件機制承擔的,它們的回調函數什么時候發生基本上都是未知數,可能由于后臺發生系統級錯誤,無法再發出響應,或者,系統忙碌,一時半刻響應不過來,這兩種情況我們也必需提供一個策略,中斷這操作,也就是所謂的abort,這些都是異步編程的所要處理的課題。

$.post("/foo.json", function (dataOfFoo) {//多層套嵌結構的Ajax回調
$.post("/bar.json", function (dataOfBar) {
$.post(
"/baz.json", function (dataOfBaz) {
alert([dataOfFoo, dataOfBar, dataOfBaz]);
});
});
});

function throwError(){
throw new Error('ERROR');
}

try{
setTimeout(throwError,
3000);
}
catch(e){
alert(e);
//這里的異常無法捕獲
}

it知識庫javascript 異步編程,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲卡5卡6卡7国色天香 | 欧美另类特大 | 亚洲区小说区图片区qvod伊 | 日本精品久久久久久久久免费 | 极品美女一级毛片免费 | 亚洲图片另类小说 | 国产高级黄区18勿进一区二区 | 激情伊人网 | 国产情侣真实露脸在线 | 亚洲一区二区三区在线 | 国产精品区网红主播在线观看 | 奇米第四狠狠777高清秒播 | 国产精品分类视频分类一区 | 香港三级欧美国产精品 | 亚洲乱码一区 | 乱码一区二区三区完整视频 | 亚洲精品亚洲人成人网 | 精品无人区一区二区三区 | 一级做a爰片性色毛片2021 | 色视频一区二区三区 | 亚洲一区二区三区网站 | 国产99对白在线播放 | 91久久精品一区二区三区 | 亚洲一区免费在线 | 久久精品国产2020观看福利色 | 久久国产自偷自偷免 | 国产大臿蕉香蕉大视频 | 国产真实乱子伦xxxx仙踪 | 999re6热在线精品视频思思 | 亚洲国产一区二区三区 | 色涩网站在线观看 | 国产怡红院 | 天天做天天爽爽快快 | 韩国免费特一级毛片 | 激情小说综合网 | 91青青草视频在线观看 | 久久久久久一级毛片免费无遮挡 | 亚洲国产成人精品女人久久久 | 亚洲成在人网站天堂一区二区 | 人成精品视频三区二区一区 | 国产精品自在线观看剧情 |