模块化Javascript库,功能类似于jQuery

时间:2009-06-02 00:31:40

标签: javascript jquery dom

jQuery和类似的库为DOM遍历和操作提供了许多有用的API。如果您的网站拥有大量重复访问者,那么他们的使用很容易证明,因为缓存会抵消最终用户的任何带宽成本。

在其他情况下,网站访问者可能始终是唯一的,因此相对于开发团队的利益而言,这些库的带宽损失可能过于严重。

是否有任何库提供这种DOM交互方式,同时允许您选择与您的页面相关的部分。

例如,

jQuery('#myId').addClass('error');

和jQuery中的许多其他API可以在几行代码中复制,从而避免了大约50kB的下载。

所以问题是,是否存在包含这些函数的库,几乎不依赖于库的其他方面,或者我是否需要在必要时自己创建它们?

是否有可用于将现有库(如jQuery)分解为最小组件的机制/工具?

5 个答案:

答案 0 :(得分:4)

正如here所述,如果您使用Google作为库的主机,则用户可能已经将其缓存,然后才能访问您的网站。

This page显示支持哪些库。目前:

  • 的jQuery
  • jQuery UI
  • 原型
  • script.aculo.us
  • MooTools的
  • 道场
  • SWFObject 新!
  • 雅虎!用户界面库(YUI)新!

我只是为了推销自己,但如果你不使用图书馆,请确保你知道所有浏览器版本的所有错误。

不过,这不是一个坏主意。如果你能创建一个自定义版本的jQuery会很好。我特别喜欢iPhone的Mobile Safari和Adobe AIR,它们剥离了所有非webkit的东西。

答案 1 :(得分:3)

jQuery的生产版本是19k,与相当小的图像相同。在我的书中没有严厉的带宽惩罚!

编辑:..并且值得每个k。

答案 2 :(得分:1)

MooTools允许您只下载所需的部分。所以,如果你想要的只是JSON AJAX请求就足够了,你就得到了它。

http://mootools.net/core

答案 3 :(得分:0)

结帐Sly。只有3kB。

答案 4 :(得分:0)

对不起家伙我不知何故丢失了一个人询问JS库冲突解决方案的页面。

我遇到了同样的问题,但现在我在玩了一些JQuery脚本之后解决了它。我知道 * 有点痛苦,但让我们一步一步来做。

首先让我告诉你,在我的项目中,我使用了两个不同的库。我正在使用Lightwindow和JQuery。我无法让两个库都正常运行但我想出了以下脚本。您必须在每个要使用JQuery函数的函数中使用此脚本:

//这句话说,美元符号$属于JQuery库。

jQuery(document).ready(function($){ //你的源代码就在这里。

});

让我们稍微详细一点使用它。在我的场景中,我有一个单击按钮,可以调用以下函数:

        function popups(message, heading, actionlink, linkName) {  

//这是告诉其余源代码的LINE //识别JQuery函数。

            jQuery(document).ready(function($) {

            // get the screen height and width    
            var maskHeight = $(document).height();    
            var maskWidth = $(window).width();  


            // assign values to the overlay and dialog box  
            $('#dialog-overlay').css({height:maskHeight, width:maskWidth}).show();  
            $('#dialog-box1').show();  


            // display the message  
            $('#dialog-message-row').html(message);  
            $('#dialog-message-heading').html(heading);  
            $('#dialog-message-actionlink').html("<a onclick=function('x') class='button' id='delete'>"+linkName+"</a>");

           });//CLOSE JQuery translator
        }