微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-如何下载文本文件并以字符串形式存储在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一个未定义的值.任何建议,将不胜感激.

解决方法:

为了使该代码正常工作,事件需要是同步的,换句话说,在$.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会更容易.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐