Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php YUI自定义事件和同步操作_Php_Javascript_Events_Yui - Fatal编程技术网

Php YUI自定义事件和同步操作

Php YUI自定义事件和同步操作,php,javascript,events,yui,Php,Javascript,Events,Yui,我正在开发一个JavaScript应用程序,它必须通过AJAX执行两个单独的检查。根据每次检查的结果,行为会有所不同。我感兴趣的案例是当两个检查都成功时。我已经确定了一些方法来做到这一点,我想从SO那里得到一些反馈,他们认为最好的方法是什么 同步AJAX调用:这是我继承的,它已经不存在了。它会导致浏览器和系统锁定,尽管它允许您在单个执行线程中处理响应。 菊花链:进行AJAX调用以执行第一次检查,如果通过,则在第一次检查的回调中执行第二次检查。处理第二次检查,如果通过,我们就成功了。这是最简单的解

我正在开发一个JavaScript应用程序,它必须通过AJAX执行两个单独的检查。根据每次检查的结果,行为会有所不同。我感兴趣的案例是当两个检查都成功时。我已经确定了一些方法来做到这一点,我想从SO那里得到一些反馈,他们认为最好的方法是什么

同步AJAX调用:这是我继承的,它已经不存在了。它会导致浏览器和系统锁定,尽管它允许您在单个执行线程中处理响应。 菊花链:进行AJAX调用以执行第一次检查,如果通过,则在第一次检查的回调中执行第二次检查。处理第二次检查,如果通过,我们就成功了。这是最简单的解决方案,但它会不必要地将我的两项检查结合起来。我还觉得序列化检查是不必要的,会降低性能。 自定义事件:使用YUI的模块和自定义事件实用程序,同时触发两个AJAX调用。为每个成功案例创建一个自定义事件,并让处理AJAX响应的回调为每个成功检查抛出相应的事件。然后,每个事件的处理程序都可以订阅另一个事件,如果抛出该事件,则表示我们已成功完成。 我的问题与第三种方法有关,这是我喜欢的方法。我喜欢我的处理程序只通过抛出的事件连接,并且AJAX调用可以同时发生。我想知道的是,还有其他人以这种方式使用过这个模块吗?我能预料到什么样的陷阱?我担心我可能已经为自己设置了一个比赛条件,我怎样才能缓解这种情况?最后,对于读过这篇文章的人来说,有没有更好的方法?我的列表是否不完整,或者设计是否存在根本缺陷?建设性的批评和评论是非常受欢迎的


编辑:虽然服务器请求确实使用会话,但它们彼此无关,并且不写入会话数据,因此没有理由不在服务器上并行执行,除非PHP会话有一些我不知道的限制。我们也会进行服务器端检查,但我们发现在某些重要事件之前,我们需要立即与服务器进行检查,以便在罕见的事件中通知用户发生了变化

您没有说明您在服务器端拥有什么?就我个人而言,出于几个务实的原因,我倾向于选择2

跨浏览器意味着支持IE,IE只允许向服务器发送2个未完成的请求。我将避免以这种方式使用这两种方法,因为这可能会导致浏览器出现明显的锁定,不像使用同步请求那样严重,但仍然非常糟糕

通常,这样的请求将运行服务器端代码,而服务器端代码使用某种会话,这反过来又会将请求限制为按顺序处理,因此无法实现所需的性能增益


您需要这两个结果,因此,如果您对其中一个进行编码,使其可以选择性地链接到另一个是其设计的一部分,并且知道具体原因,那么这两个结果都需要。我喜欢您的问题/答案,因此我将其包含在对原始问题的编辑中。