2012-07-31 104 views

回答

1

为了回答你的问题,可以使用同步AJAX进行预取。使用jQuery,它会是(因为我在手机上,所以请检查语法)。

$.ajax({ 
    url: "", 
    async: false, 
    success: function(resp) 
    {} 
}); 

这将确保您的数据在发布之前被加载。但正如Sinethera所说,这违背了AJAX的全部目的。如果您可以预取内容,这意味着您知道预期的内容。那么为什么不把它作为一个静态列表?

+1

nonononononononono。预取数据和关闭“异步”是有区别的。这会让你的ajax请求一个阻塞事件,就像“在你从这个URL回声之前不要做任何事情”一样。正如在“omg一切都被冻结,我不知道为什么”。几乎没有理由设置'async:false'。这不再是一个异步JavaScript和XML请求,它现在是SJAX;) – Sinetheta 2012-07-31 14:54:11

+0

但是,这是确保在加载组件之前获取数据的唯一方法。我知道它是一件非常糟糕的事情。所以我曾经说过'这个失败了AJAX的全部目的' – mihsathe 2012-08-01 16:40:00

+0

不,首先获取数据和在关闭浏览器的同时获取数据是有区别的。将'.autocomplete()'放在回调函数中的正常ajax请求是好的(毫无意义,但很好),关闭异步永远不会好。 – Sinetheta 2012-08-01 23:50:50

1

预取?那不是所谓的“不是阿贾克斯”吗?只需在页面中加载数据并将其用作静态数据源。

当他们“关注”该字段时,可以选择获取数据。这将是获取页面加载数据和执行合法动态数据源之间唯一真正的妥协。