我遇到了这个通过ajax
以并行方式获取数据的例子。然而,我不太明白这一点。有人能告诉我如何从php脚本获取这些数据,并以相同的方式附加到一个div,请如下所示?
特别是这一行是什么意思?globalStore.html = html;
获取html类型的数据并复制到global.html
页面?然后在$then
部分从该页获取数据并追加?
我的目标是将一个ajax请求分成至少3个不同的php页面,然后将数据数组显示到附加的div中。
$.when(
// Get the HTML
$.get("/feature/", function(html) {
globalStore.html = html;
}),
// Get the CSS
$.get("/assets/feature.css", function(css) {
globalStore.css = css;
}),
// Get the JS
$.getScript("/assets/feature.js")
).then(function() {
// All is ready now, so...
// Add CSS to page
$("<style />").html(globalStore.css).appendTo("head");
// Add HTML to page
$("body").append(globalStore.html);
});
渲染这样的页面是不必要的,因为现代浏览器无论如何都会并行拉下多个资源(脚本可能例外),但这是一个不同的问题,所以回答你的:
$.get("/feature/", function(html) {
globalStore.html = html;
})
它所做的是从$中分配回调。get(这里称为html
)到对象变量globalStore
(可能在上述代码中定义)。css调用也是如此,然后$. getscript就不需要回调了。所有这些ajax调用都是封装在$中的jQuery延迟对象。当它本身返回一个新的"主"延迟对象时,在该对象上使用$。然后附加回调。当它的所有"子"延迟都被解决时触发这个回调,然后它使用存储在globalStore
中的来自ajax调用的数据来操作DOM。
要在<div>
中使用它-假设你想从3个不同的供应商加载价格,但同时显示它们-你会遵循相同的一般原则,只是操作dom的不同部分(即你附加的div)。
建议您完整阅读https://api.jquery.com/jquery.when/