第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JQuery - 將ajax響應存儲到全局變量中

JQuery - 將ajax響應存儲到全局變量中

SMILET 2019-08-26 15:27:16
JQuery - 將ajax響應存儲到全局變量中我仍然是jQuery和ajax場景的新手,但我有一個$ .ajax請求執(zhí)行GET來檢索一些XML文件(大約6KB或更少),但是在用戶花費在該頁面上的持續(xù)時間內,XML內容應該是不會/不會改變(這個設計我無法改變,我也無權更改XML文件,因為我正在從其他地方讀取它)。因此,我有一個全局變量,我將響應數據存儲到其中,并且對此數據的任何后續(xù)查找都在此變量上完成,因此不需要進行多個請求。鑒于XML文件可以增加的事實,我不確定這是最佳實踐,并且也來自java背景我對全局公共變量的想法通常是禁止的。所以我的問題是,是否有更好的方法可以做到這一點,以及一個問題,如果文件擴展到一些荒謬的文件大小,這是否會導致任何內存問題?我認為數據可以傳遞到xml對象中的一些getter / setter類型函數,這將解決我的全局公共變量問題,但仍然提出了我是否應該將響應存儲在對象本身內的問題。例如,我目前所做的是:// top of codevar xml;// get the file$.ajax({  type: "GET",  url: "test.xml",  dataType: "xml",  success : function(data) {    xml = data;  }});// at a later stage do something with the 'xml' objectvar foo = $(xml).find('something').attr('somethingElse');
查看完整描述

3 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

除了存儲它之外沒有辦法解決它。內存分頁應該減少那里的潛在問題。

我建議不要使用名為'xml'的全局變量,而是做更像這樣的事情:

var dataStore = (function(){
    var xml;

    $.ajax({
      type: "GET",
      url: "test.xml",
      dataType: "xml",
      success : function(data) {
                    xml = data;
                }
    });

    return {getXml : function()
    {
        if (xml) return xml;
        // else show some error that it isn't loaded yet;
    }};
})();

然后訪問它:

$(dataStore.getXml()).find('something').attr('somethingElse');


查看完整回答
反對 回復 2019-08-26
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

這對我有用:

var jqxhr = $.ajax({
    type: 'POST',       
    url: "processMe.php",
    data: queryParams,
    dataType: 'html',
    context: document.body,
    global: false,
    async:false,
    success: function(data) {
        return data;
    }
}).responseText;

alert(jqxhr);
// or...
return jqxhr;

重要的是要注意:global: false,async:false最后responseText鏈接到$.ajax請求。


查看完整回答
反對 回復 2019-08-26
  • 3 回答
  • 0 關注
  • 522 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號