Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.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
什么';编写可移植Javascript库的最佳方法是什么?_Javascript_Frameworks - Fatal编程技术网

什么';编写可移植Javascript库的最佳方法是什么?

什么';编写可移植Javascript库的最佳方法是什么?,javascript,frameworks,Javascript,Frameworks,我所有的项目都包含非常相似的任务,最近我一直在想,我应该编写一个库来处理大部分繁重的工作,这样我就可以编写简短、简单、易读的代码,与库交互以完成工作。看看其他框架,特别是jQuery和YUI,它们以不同的方式工作。jQuery似乎主要使用全局对象/函数扩展和简化DOM,而YUI使用名称空间和模块。我理解这是因为他们作为图书馆有着不同的目标,每个目标都有各自的优点 最具体地说,我正在寻找以下问题的答案: 最好使用名称空间,例如gui.scrollbar.attach(),还是使用全局方法,例如$(

我所有的项目都包含非常相似的任务,最近我一直在想,我应该编写一个库来处理大部分繁重的工作,这样我就可以编写简短、简单、易读的代码,与库交互以完成工作。看看其他框架,特别是jQuery和YUI,它们以不同的方式工作。jQuery似乎主要使用全局对象/函数扩展和简化DOM,而YUI使用名称空间和模块。我理解这是因为他们作为图书馆有着不同的目标,每个目标都有各自的优点

最具体地说,我正在寻找以下问题的答案:

  • 最好使用名称空间,例如
    gui.scrollbar.attach()
    ,还是使用全局方法,例如
    $(domObj.attachScrollbar()
  • 最好将单个部件作为单独的js文件包含,还是作为单个js文件包含,以便复制/粘贴组件?我知道eBay购物API SDK在不同的文件夹中有许多.js文件,这不会对性能造成很大影响吗
  • 对于希望创建javascript库的人,您还有其他建议吗
  • 我之所以被标记为社区维基,是因为我不想冒这个问题被关闭的风险——我真的在这里寻求建议

    谢谢

    编辑
    我本来应该说,我不是在重新发明轮子,我只是想简化Windows桌面小工具之间的许多常见任务,因此我不需要其他库的跨浏览器兼容性,它们的核心功能也不适用于我正在做的事情。我试图让这个问题保持一般性,而不是专门针对桌面小工具,以便这个问题对其他人有用。

    你有什么理由不能使用已经存在的众多库中的一个?这似乎是一个重新发明轮子的案例。这些库已经存在多年了,并且已经解决了您在尝试编写自己的库时肯定会遇到的许多问题

    关于你的一些问题:

  • 在我看来,这确实是一个偏好问题。只要您将函数从全局名称空间中取出,这才是最重要的。然而,这种设计选择将推动许多其他产品的发展
  • 最好将所有核心功能都包含在一个文件中,然后将其余的分块到一些功能所需的文件中。你想减少文件的数量,但你也不想让用户下载很多他们不需要的东西
  • 说到这里,我重申,除非你有很好的理由不这样做,否则你应该考虑使用已经存在的一个库。请记住,您需要在所有旧浏览器以及任何新出现的浏览器中进行测试。
    jQuery、YUI、Prototype、Mootools、extJS是最流行的几种库

    有什么理由不能使用其中的一种库吗?这似乎是一个重新发明轮子的案例。这些库已经存在多年了,并且已经解决了您在尝试编写自己的库时肯定会遇到的许多问题

    关于你的一些问题:

  • 在我看来,这确实是一个偏好问题。只要您将函数从全局名称空间中取出,这才是最重要的。然而,这种设计选择将推动许多其他产品的发展
  • 最好将所有核心功能都包含在一个文件中,然后将其余的分块到一些功能所需的文件中。你想减少文件的数量,但你也不想让用户下载很多他们不需要的东西
  • 说到这里,我重申,除非你有很好的理由不这样做,否则你应该考虑使用已经存在的一个库。请记住,您需要在所有旧浏览器以及任何新出现的浏览器中进行测试。
    jQuery、YUI、Prototype、Mootools、extJS是对您的问题的一些最流行的回答:使用现有库编写库

    我有一些用jQuery编写的javascript文件就是为了这样的目的

    更具体地说

  • 如果您想要java风格的面向对象特性,那么就选择名称空间。我更喜欢jquery编写插件的方式
  • 如果您正在编写自己的“工具箱”,最好将依赖项(缩小)复制并粘贴到源代码中。这边
    A.您可以避免您提到的开销
    B您可以防止不必要的依赖从外部蔓延

  • 干杯

    问题的简单答案:使用现有库编写库

    我有一些用jQuery编写的javascript文件就是为了这样的目的

    更具体地说

  • 如果您想要java风格的面向对象特性,那么就选择名称空间。我更喜欢jquery编写插件的方式
  • 如果您正在编写自己的“工具箱”,最好将依赖项(缩小)复制并粘贴到源代码中。这边
    A.您可以避免您提到的开销
    B您可以防止不必要的依赖从外部蔓延

  • 干杯

    关于你的第一个问题,在我看来,这两个选项实际上是相同的。你没有像YAHOO或gui这样的全局对象,而是有一个像$这样的全局函数。在这两种情况下,您都有一个保存名称空间的全局变量。

    关于您的第一个问题,这两个选项实际上是相同的。您没有像YAHOO或gui这样的全局对象,而是像$这样的全局函数。在这两种情况下,都有一个全局变量来保存你的命名空间。

    我期待OL“重新发明轮子”的答案,可能应该提到我不需要X浏览器兼容性,这个框架不是专门针对网页的。我期待OL“重新发明轮子”。回答,可能应该提到我不需要