我认识到这个问题可能涉及到Javascript函数的运作方式(而不仅仅是我的特定情况),但......
我想知道我的文件准备功能......嗯......功能。以程式化的形式,它如下所示:
$(function () {
object1.init();
object2.init();
object3.init(); etc...
object2.init()只会在object1.init()返回时触发?或者他们都会以异步方式开火?
更新:如果他们顺序开火,有什么方法可以让他们同时进行(我可能不需要这样做)?
感谢。
答案 0 :(得分:3)
object2.init()只会在object1.init()返回时触发?或者他们都会以异步方式开火?
object2.init()仅在object1.init()返回时触发 所有函数都存储在一个队列中,并一个接一个地被触发。
没有办法让他们同时开火 不仅仅是jQuery,而且javascript不支持并行编程。
您可以看到jQuery源代码:
(更新:我删除了实际代码,因为答案变成了迷你jQuery源代码......)
// Handle when the DOM is ready
ready: function(wait) {
...
// Call all callbacks with the given context and arguments
fireWith: function(context, args) {
...
jQuery.Callbacks = function( flags ) {
...
// The deferred used on DOM ready
readyList,
中的这些功能和变量
答案 1 :(得分:2)
它将按顺序运行。
如果其中一个init()
执行了异步调用,那么显然会是异步调用,但每个函数(或实际的任何行)都将依次运行。