jquery - $.get() 加载两次

标签 jquery

我好像走进了死胡同。

我尝试使用 jQuery .get() 加载数据,但在调试时,它显示该函数执行了两次,因此 prodList 中的值丢失了。

$.get(url, function (model) {
    prodList = $.parseJSON(model);
    alert(prodList);
});

alert(prodList);

在第一个alert()中,它显示从服务器返回的数据。但在第二个 alert() 中它显示空字符串。

我做错了什么?

最佳答案

您显示的代码并未表明执行有任何问题。

关于值的警报。

$.get() 是异步执行,这意味着代码执行在 .get() 启动后继续。

您指定的回调函数在 .get() 完成之前不会执行,但其余代码将继续执行。

因此,第一个警报会显示执行回调之前的值,因此 prodList 尚未填充。

在回调函数中填充值后,将显示第二个警报。

$.get(url, function (model) {
    prodList = $.parseJSON(model);

    alert(prodList); // prodList is now populated
});

alert(prodList); // prodList here is alerted before it is populated

如果您想使用 prodList 执行某些操作,您可以在回调函数本身中使用它,或者从回调函数调用另一个函数,将 prodList 作为参数传递给 process它就在那里。

关于jquery - $.get() 加载两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15848331/

相关文章:

javascript - 将鼠标悬停在文本 jQuery 上

javascript - splshpage 加载时禁用滚动条

javascript - 导航到另一个页面时,Safari 上未显示页面加载覆盖

jquery - 日期选择器设置为今天的日期并禁用周末

javascript - 创建一个消失的 header ,类似于 Chrome for Android 中的 header

javascript - 如何动态创建 Jquery 模板输入数据

javascript - Angular ng-repeat 和过滤器错误(版本 1.1.5 有效,1.2.15 有错误)

javascript - jQuery : window is not defined 的 Buster.js 依赖性错误

javascript - 视差和固定导航

javascript - 使用标签和跨度的表