【发布时间】:2016-05-15 22:35:06
【问题描述】:
在不保留页面上正在加载的其他资产/资源的进度的情况下,通过/通过 AJAX 请求数据的最佳方式是什么?问题是需要从您的 AJAX 调用返回的数据/信息。例如,返回的数据将用于填充/生成您的 HTML 页面。
实际例子:
$.get("pageURI", {getVar:getVal}, function( data ){
var response = data;
});
- 您可以使用 $(document),ready(function(){}); 包装您的代码并在文档准备好时生成 HTML,但同样,在 AJAX 调用中没有围绕您的页面生成逻辑,因此在 $.get(...)... 中,您如何确保页面仅填充您的内容因此,仅当您知道响应具有预期数据时,即为 !undefined。
- 我对 AJAX 调用包装器中的代码没有问题,但是如果您有很多依赖于响应的代码,换句话说,您有大约 10 到 15 个长函数和其他逻辑,是吗?建议将它们包裹在您的 AJAX 调用中?
- 我也知道可以将响应设置为窗口属性 (window.response)/全局变量,并且仅在页面完全加载后使用它,例如 $(window).bind("load", function(){}) ,因为它可能会在整个程序生命周期的各个地方使用,但这是一种好的编码习惯吗?
感谢您的回复。
【问题讨论】:
-
我不关注。 AJAX 调用是异步的,不会阻碍页面加载或呈现。
-
嗨 Wainage,我的问题可能不清楚并且对此感到抱歉,但我的意思是,正如我反复声明的那样,如果您查看我的代码 sn,我对部分问题的看法非常明确-p,您会看到在 $.get 函数中为数据设置了响应,如果您尝试在调用之外使用该变量(响应),您将得到未定义而不是预期值....是我的问题...
-
没有办法解决这个问题......你必须等待它变得可用,因为 AJAX 调用需要时间。从该回调中更新您的页面。
-
非常感谢!我认为除了我对 AJAX 的了解之外,还有另一种方法......我个人不喜欢在 $.get/post(...) 周围包装很多逻辑/代码。再次感谢。
标签: javascript jquery html ajax logic