簡體   English   中英

如何下載文本文件並以字符串形式存儲在jQuery中

[英]How to download a text file and store as a string in jQuery

我有一組文本文件,它們代表我想使用JavaScript應用程序下載的來自第三方的數據表。 他們看起來像這樣:

col1 col2 .. coln
vala valb .. valz
valA valB .. valZ
etc..

我一直在嘗試使用jQuery來做到這一點。 我已經可以使用$ .load,但是我不想將數據存儲在DOM中,而是想將其解析為一個對象。 每當我嘗試使用一種ajaxy方法時,都會收到我不理解的錯誤。 例如:

var myData;
$.ajax({
    type: 'GET',
    url: $(this).attr('source'),
    dataType: 'html',
    success: function(data) {
        myData = data;
    }
});
alert(myData);

給我myData一個undefined值。 任何建議,將不勝感激。

為了使該代碼正常工作,事件需要是同步的,換句話說,在$ .ajax調用中設置async:false。 之所以會出現問題,是因為ajax通常是異步的,這意味着當您執行警報時,請求可能會或可能不會完成。 不過,通常情況下,它不會比執行函數調用花費更長的時間來獲取頁面。 因此,通過設置async:false,可以讓jquery(和ajax處理程序)等待頁面加載完成,然后再嘗試警告數據。 實現相同效果的另一種方法是執行以下操作:

var myData;
function fin(data) {
    myData = data;
    alert(myData);
}
$.ajax({
    type: 'GET',
    url: $(this).attr('source'),
    dataType: 'html',
    success: fin
});

這種方法可能比將async設置為false更好,因為它不會在等待頁面加載時使瀏覽器掛起。 但是,異步編程不是容易學習的東西,因此許多人會發現使用async:false會更容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM