Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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
Jquery 使用多个AJAX库的最佳策略是什么?_Jquery_Ajax_Yui_Prototypejs_Scriptaculous - Fatal编程技术网

Jquery 使用多个AJAX库的最佳策略是什么?

Jquery 使用多个AJAX库的最佳策略是什么?,jquery,ajax,yui,prototypejs,scriptaculous,Jquery,Ajax,Yui,Prototypejs,Scriptaculous,关于使用多个AJAX库,您可以分享哪些经验 Prototype中有一些有用的功能,jQuery、Yahoo库等等。是否可以包含所有库并使用每个库中您想要的功能,它们通常都与名称空间等配合得很好。为了提高速度,包含的库的大小/数量是否有实际限制,或者可以忽略不计?是否有对能够很好地协同工作(例如Prototype/Scriptaculous)或没有协同工作的对?我现在正在项目中并排使用jQuery和Microsof ajax工具包的javascript文件版本 我想我将使用jQuery并最终删除微

关于使用多个AJAX库,您可以分享哪些经验


Prototype中有一些有用的功能,jQuery、Yahoo库等等。是否可以包含所有库并使用每个库中您想要的功能,它们通常都与名称空间等配合得很好。为了提高速度,包含的库的大小/数量是否有实际限制,或者可以忽略不计?是否有对能够很好地协同工作(例如Prototype/Scriptaculous)或没有协同工作的对?

我现在正在项目中并排使用jQuery和Microsof ajax工具包的javascript文件版本


我想我将使用jQuery并最终删除微软的一个。我对jQuery非常陌生,但我对它了解得越多,就越着迷

我也是jQuery的信徒,所以请原谅我对其他人缺乏了解,但是

让jQuery如此出色的是无冲突模式,例如,您可以:

$('#foobar').whatever();
如果没有冲突模式,您可以执行以下操作:

var jq = jQuery.noConflict();
jq('#foobar').whatever();
少担心一件事。我认为prototype提供了类似的功能,雅虎也提供了类似的功能

但无论如何,我不想过分鼓吹jQuery,也不想让人们发疯,但无论您选择什么库,我认为它们都可以做您需要的几乎所有事情。特别是想想而不是学习三种不同图书馆的好处


这三个人都应该有能力。选择您最喜欢的并扩展它。:)

默认情况下,RubyonRails同时使用prototype和Scriptaculous,因为两者之间几乎没有重叠。除此之外,我还使用了yui代码片段,从未遇到过问题。加载时间是一个问题,但是库通常是缓存的,所以它只在加载的第一页上。

YUI具有很强的名称空间,因此不应该与其他库发生冲突

如前所述,您可以在无冲突模式下运行jQuery

Prototype在处理其他库时确实存在一些问题,部分原因是它(或曾经)修改了核心对象,如
数组
。试图解决这些问题

Script.aculo.us只是一个位于原型之上的小部件库,因此这两个小部件显然应该很好地结合在一起


所有这些都意味着您可以在应用程序中使用YUI、jQuery、Prototype&Script.aculo.us,但您可能会发现使用单个库会使维护变得更加容易。

您可以使用所有这些库,但我强烈建议不要使用。下载和执行如此多的JavaScript很可能会阻塞浏览器,降低用户体验。从用户和开发人员的角度来看,选择一个更好。更少的上下文/架构切换和更少的代码维护

正如其他答案所说,大多数答案并不矛盾

看看雅虎s站点获取更多信息

你可以用。
它为jQuery、prototype、script.aculo.us、MooTools和dojo提供了一个通用的分发网络和加载体系结构。最好的策略是不要使用多个库。想要在一个问题上抛出更多的库是很有诱惑力的,但是这样做效率低,容易出错,并且使您的代码更难被其他人维护

在大多数情况下,您应该能够通过了解您的问题域以及哪个库将帮助您最好地解决问题来避免使用多个库。所有这些库都有无数的插件和扩展

例如,JQuery支持跨域JSONP调用,并且在JQueryUI中有一个很好的小部件库,Prototype没有

$.getJSON('http://anothersite.com/mashup.json?callback=?', function(data) { });
Prototype具有非常好的OO支持,并且很容易遍历DOM,但缺少创建小部件和mashup所需的一些跨域功能

var Foo =  Class.create({  
  initialize: function(name) {
    this.name = name;
  }   
});

var Bar = Class.create(Foo, {
  initialize: function($super, name)  {
     $super(name);
   }
});

Mootools有很好的效果、良好的OO支持、真正可靠的小部件和跨域请求,但是(这可能只是我的印象),开发社区与全球社区(Mootools之外)的协作性和社会性不如其他社区(原型曾经是这种方式)。这可能是因为他们的主要开发商居住在美国境外,因此无法参加如此多的会议和参与更大的社区。虽然我不会让这完全吓倒你,但这是需要记住的。

Scriptaculous是原型的一个附加组件。这就是为什么它们能很好地协同工作。AFAIK原型没有这样的功能。jQuery名称空间将所有内容都放在“jQuery”对象中,Prototype的函数分散在几十个自定义和内置类中,因此很难做到这一点。至于Yahoo,如果我没记错的话,它将所有内容都隐藏在名为“Yahoo”或其他名称空间中,因此默认情况下它不会与任何内容发生冲突。