• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    JavaScript callback回調函數用法實例分析

    來源:懂視網 責編:小采 時間:2020-11-27 22:15:02
    文檔

    JavaScript callback回調函數用法實例分析

    JavaScript callback回調函數用法實例分析:本文實例講述了JavaScript callback回調函數用法。分享給大家供大家參考,具體如下: 在使用開源項目的時候經常會使用到回調函數,如果把回調函數弄清楚了,那么對我們深入了解開源項目會有很大幫助。 回調函數百度百科的解釋: 回調函數就是一個通過函數指針
    推薦度:
    導讀JavaScript callback回調函數用法實例分析:本文實例講述了JavaScript callback回調函數用法。分享給大家供大家參考,具體如下: 在使用開源項目的時候經常會使用到回調函數,如果把回調函數弄清楚了,那么對我們深入了解開源項目會有很大幫助。 回調函數百度百科的解釋: 回調函數就是一個通過函數指針

    本文實例講述了JavaScript callback回調函數用法。分享給大家供大家參考,具體如下:

    在使用開源項目的時候經常會使用到回調函數,如果把回調函數弄清楚了,那么對我們深入了解開源項目會有很大幫助。

    回調函數百度百科的解釋:

    回調函數就是一個通過函數指針調用的函數。如果你把函數的指針(地址)作為參數傳遞給另一個函數,當這個指針被用來調用其所指向的函數時,我們就說這是回調函數。回調函數不是由該函數的實現方直接調用,而是在特定的事件或條件發生時由另外的一方調用的,用于對該事件或條件進行響應。

    看上去不是那么容易理解,我們來看個例子(知乎):

    你到一個商店買東西,剛好你要的東西沒有貨,于是你在店員那里留下了你的電話,過了幾天店里有貨了,店員就打了你的電話,然后你接到電話后就到店里去取了貨。在這個例子里,你的電話號碼就叫回調函數,你把電話留給店員就叫登記回調函數,店里后來有貨了叫做觸發了回調關聯的事件,店員給你打電話叫做調用回調函數,你到店里去取貨叫做響應回調事件。

    這樣好理解多了吧,當店員被創建出來的時候,并不知道有誰會來商店里買東西,店員需要和很多不同的對象打交道,需要適配不同類型的對象,這個時候就需要回調函數了。

    我們通過一個事例來理解一下回調函數的運用場景:

    Me需要完成一個任務,計算1+1=?

    Me如果要自己完成這個任務

    代碼如下:

    HTML 代碼

    <div class="imgDiv">
     <div class="search">
     <input class="put" type="text" id="keyWord"/>
     <ul id="tipList"></ul>
    </div>
    
    

    JavaScript 代碼

    (function (){
     $(function(){
     $("#keyWord").on("keyup",function(event){
     var keyCode = event.keyCode;
     if(keyCode == 38|| keyCode ==40){
     settingTipList(keyCode);
     return false;
     }
     var keyWord = $(this).val();
     getTipList(keyWord);
     });
     var index = -1;
     function settingTipList(keyCode){
     if(keyCode == 38){
     index--;
     }else{
     index++;
     }
     var size = $("#tipList li").size();
     index =index % size;
     $("#tipList li").removeClass("active").eq(index).addClass("active");
     var selectLiContent = $("#tipList li").eq(index).html();
     $("#keyWord").val(selectLiContent);
     };
     //獲取數據
     function getTipList(keyWord){
     var url = "https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su";
     var data = {
     wd:keyWord,
     cb:"hhh"
     };
     $.ajax({
     url:url,
     data:data,
     type:"GET",
     dataType:"jsonp",
     jsonpCallback:"hhh",
     success:function(data){
     var tipList = data.s;
     handleData(tipList)
     },
     error:function(error){
     alert("接口出錯")
     }
     });
     }
     });
     function handleData(tipList){
     var tipHTML= "";
     for(var i in tipList){
     var text = tipList[i];
     tipHTML += "<li>"+text+"</li>"
     }
     $("#tipList").css({"opacity":"1"});
     $("#tipList").html(tipHTML);
     }
    })()
    //如果不寫jsonpCallback、后面jsonpCallback“”空置、直接跳出“接口出錯了。
    
    

    注意:

    1. 使用ajax進行 JSONP跨域請求,因為被請求的對方的回調函數名稱是無法修改。而這邊頁面中會出現多個不同JSONP請求,但他們的回調函數名稱都是同一個,_Callback。想到設置AJAX 的JSONP參數。但是發現根本不起作用。最后偶然發現 jsonpcallback是區分大小寫的。是  jsonpCallback而不是jsonpcallback;

    2. JSONP 是構建 mashup 的強大技術,但不幸的是,它并不是所有跨域通信需求的萬靈藥。它有一些缺陷,在提交開發資源之前必須認真考慮它們。第一,也是最重要的一點,沒有關于 JSONP 調用的錯誤處理。如果動態腳本插入有效,就執行調用;如果無效,就靜默失敗。失敗是沒有任何提示的。例如,不能從服務器捕捉到 404 錯誤,也不能取消或重新開始請求。不過,等待一段時間還沒有響應的話,就不用理它了。(未來的 jQuery 版本可能有終止 JSONP 請求的特性)JSONP 的另一個主要缺陷是被不信任的服務使用時會很危險。因為 JSONP 服務返回打包在函數調用中的 JSON 響應,而函數調用是由瀏覽器執行的,這使宿主 Web 應用程序更容易受到各類攻擊。如果打算使用 JSONP 服務,了解能造成的威脅非常重要。

    更多關于JavaScript相關內容可查看本站專題:《JavaScript常用函數技巧匯總》、《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》及《JavaScript數學運算用法總結》

    希望本文所述對大家JavaScript程序設計有所幫助。

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    JavaScript callback回調函數用法實例分析

    JavaScript callback回調函數用法實例分析:本文實例講述了JavaScript callback回調函數用法。分享給大家供大家參考,具體如下: 在使用開源項目的時候經常會使用到回調函數,如果把回調函數弄清楚了,那么對我們深入了解開源項目會有很大幫助。 回調函數百度百科的解釋: 回調函數就是一個通過函數指針
    推薦度:
    標簽: 使用 用法 js
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 欧美成人精品一区二三区在线观看| 国产精品内射婷婷一级二| 麻豆精品成人免费国产片| 亚洲高清国产AV拍精品青青草原| 国产精品JIZZ在线观看老狼| 国产成人A人亚洲精品无码| 久久亚洲国产精品123区| 2022精品国偷自产免费观看| 国产精品内射后入合集| 在线成人精品国产区免费| 国产精品丝袜一区二区三区| 亚洲国产精品无码专区影院| 精品国产乱码久久久久久郑州公司| 欧美日韩精品久久久免费观看| 影视网欧洲精品| 国产精品网站在线观看| 精品无码人妻一区二区免费蜜桃| 亚洲午夜福利精品无码| 国产综合免费精品久久久| 91po国产在线精品免费观看| 国产精品久久久久久搜索| 精品调教CHINESEGAY| 人妻精品久久久久中文字幕69 | 国产精品无打码在线播放| 久久成人精品视频| 国产福利91精品一区二区三区| 国产成人精品视频一区二区不卡| 久久久精品人妻一区二区三区四| 亚洲AV无码国产精品麻豆天美 | 九九精品99久久久香蕉| 人妻少妇精品中文字幕AV| 日产精品久久久久久久性色| 亚洲精品V欧洲精品V日韩精品| 亚洲国产精品一区二区第四页| 久久精品成人| 亚洲AV无码成人精品区大在线| 亚洲av无码国产精品色在线看不卡 | 精品国产午夜福利在线观看| 精品一区二区三区免费视频| 久草热8精品视频在线观看| 日韩精品人成在线播放|