代码之家  ›  专栏  ›  技术社区  ›  Alec Smart

删除不需要的jQuery函数

  •  7
  • Alec Smart  · 技术社区  · 15 年前

    你好,

    像jQuery这样的库是完全加载的,并且带有许多我们在脚本中可能不使用的函数。我想知道是否有一种方法可以说readmyscript找出我正在使用的所有jQuery函数及其依赖项,然后从jQuery库中删除其余的函数。这几乎可以应用于任何库,并不是jQuery特有的问题。

    5 回复  |  直到 15 年前
        1
  •  3
  •   Amjad Alsharafi    7 年前
        2
  •  2
  •   jAndy    15 年前

    即使我不知道为什么,你也可以这样做:

    http://github.com/jquery/jquery/blob/master/Makefile

    base files 是按依赖关系排序的,所以您可能会剥离出不使用的模块。。。

    我不是100%确定这是否有效,从来没有尝试过我自己,但你可以试试。

        3
  •  1
  •   Pekka    15 年前

    jQuery不像Prototype和MooTools那样提供打包下载,自己构建它们可能会很困难,因为您必须手动地整理所有依赖项—对于每一个新的jQuery版本,都要一次又一次地整理。

    此外,目前完整库的大小为24kbgzip,我告诉您大小并不重要。这个库只被加载一次-如果你从CDN加载它,它会被集中缓存,这使得它即使对于低速的调制解调器连接也是可行的。

        4
  •  1
  •   Anurag    15 年前

    如果JavaScript在本质上不是高度动态的,那么可以给出 Closure Compiler 一枪。

    全部的 将JavaScript放在一个地方(包括jQuery、插件、其他库等等),并使用高级编译选项将其提供给gcc。

    这将删除所有未使用的函数 可能会破坏你的代码 . 只有当您有测试用例,或者您的JS足够小,可以完全手动测试时,我才建议您这样做。

    function hello(name) {
        alert('Hello, ' + name);
    }
    
    hello();
    

    将减少到:

    alert("Hello, undefined");
    

    因为这就是基本上正在发生的一切。

        5
  •  0
  •   RobertPitt    15 年前

    InArray

    基本上jquerys方法相互使用来完成任务,这是它们保持包大小不变的方法之一。

    如果你真的想这样做,我会这样做:

    $M = MyjQuery = function(element,context)
    {
        this.fn = {}
        this.extend = function(base,new)
        {
            //Extend them here
        }
    }
    

    推荐文章