【发布时间】:2014-08-05 16:15:29
【问题描述】:
我的问题由两部分组成。
在我的网页中,我正在使用 ajax post 调用动态创建一些 div,以从 db 获取一些信息。然后我创建我的 div。我的结构如下。
<html>
<body>
<script type="text/javascript" src="some.js"></script>
<script type="text/javascript" src="createDivs.js"></script>
<script type="text/javascript" src="useThatDivs.js"></script>
<script type="text/javascript" src="useThatDivsMore.js"></script>
</body>
</html>
在这里,createDivs.js 使用 async:false 进行 ajax 调用(因为在以后的脚本中,我使用这些 div)(顺便说一句,这是对服务器的后调用),并从 db 获取信息,然后创建根据信息的div。
所以我的问题是。
- 1) ajax 调用是否应该始终是异步的?然后,我对ajax的使用是 这里完全没用/错了吗?
- 2) 如果不推荐使用 async:false,我应该使用什么来代替 方法?
【问题讨论】:
-
数据返回后,您始终可以使用回调来执行操作。这就是你应该做的,而不是关闭异步。
-
方法是利用回调机制
-
阻止用户界面总是不好的。您的代码可以从一些重组中受益,例如在 createDivs.js 的成功回调中执行 useThatDivs.js 的内容
-
为什么不使用done、fail等回调
-
@Andrew 但是如果我所有的其他脚本都依赖于这个第一个 createDiv.js,它不会破坏模块化吗?我的意思是 scriptA 对这些 div 做一些事情,scriptB 做其他事情。把所有东西都放在回调中,真的是一个好习惯吗?
标签: javascript jquery html ajax