【问题标题】:All scripts AND libraries in ONE js script?一个 js 脚本中的所有脚本和库?
【发布时间】:2013-08-17 04:08:32
【问题描述】:

好的,所以我正在构建我的第一个 Javascript“框架”或“引导程序”,它将与单个预处理 CSS 文件结合实现。我正在收集我最喜欢的内容滑块、平滑滚动条、内容幻灯片、视差元素和 bg-img、粘性元素,以及一些更先进的基于导航和 UI 的脚本(跨浏览器/平台/设备/视口兼容性和性能)。我的问题是在构建我的演示页面时,所有组合元素都已加载并在页面上处于活动状态......很多人似乎需要调用不同版本的 Jquery 才能正常运行。我已经设法让它们在测试时正常工作,方法是仔细重新排序 jquery 库,因为它们在页面中被调用。现在这是我的 (2) 部分问题:

  1. 如何在不加载多个版本的情况下让所有 JQuery 正常工作(几乎每个脚本一个版本)

  2. 我的作品集中有一个样本,我很乐意将其用作示例。 http://www.nicholasabrams.com/(非移动设备版本)。在该 URL 的 src 中,您只会看到 (1) js 和 (1) css - 包括 jquery 库,这些库也包含在文件开头的单个 .js 中。请不要喷我,因为我正在寻求帮助。上面的链接现在可以正常工作(苹果只是一个例外)......但我只是想消除我刚开始在我的第一家大公司担任网络开发人员的任何不良做法。谢谢!!

PS:会发布一个 sn-p,但它是一个很大的 js 文件,正如您想象的那样,但如果您愿意,请检查我的 src 并让我知道您的想法,因为我的网站首次加载时间从 22 秒减少到 4-完成上述操作 7 秒后,我希望我可以只包含最新版本的 JQuery!)

【问题讨论】:

  • 我可以告诉你,同一页面上的多个版本的 jQuery 肯定会导致冲突。
  • 但它没有,检查链接,没有与任何类型相关的控制台错误
  • 您有一个2.4mb image 和一个巨大的模态对话框,直到 所有内容 加载后才会消失。没有用户会等待 30 秒来加载您的网站。 JavaScript 是您最不关心的问题。
  • @user2691203:我的连接很好,如果我需要 30 秒才能下载它,那么使用 DSL 的人将等待超过一分钟。您的网站应该会在几秒钟内加载完毕。
  • @user2691203:至于你的问题,我使用最新版本的 jQuery 并修改了我使用的脚本(如果有的话),所以这对我来说不是问题。只需使用最新版本,看看你得到什么错误。版本之间没有太多变化。

标签: javascript jquery html css


【解决方案1】:

如果我对您的理解正确,您正在向页面加载多个 jQuery 库(以不同的顺序)?这是一个错误 - 你不应该那样做。

您应该做的是确保您使用的插件与您正在使用的库兼容。如果他们不是 - 寻找其他插件或修复那些你必须支持你正在使用的 jQuery 语言的插件。

【讨论】:

  • 谢谢,我只有 Javascript 的基本概念……将一个典型的 jquery 脚本转换成一个可以运行的脚本(JQuery 2 或任何最近的版本)有多难。这也不是传递 NoConflict 变量的目的吗?
  • 这取决于代码。每个代码都是独立的。发生的情况是 jQuery 函数可能会从一个版本更改为另一个版本,甚至被删除(因为不再需要它们或者有新的东西可以替换它们)。我首先要在 google 上搜索插件,看看开发人员是否发布了与较新的 jQuery 语言兼容的较新版本。
【解决方案2】:

你有一个 2 兆字节的高分辨率背景图片,这太疯狂了!我会放弃它和漩涡图像,虽然它对你来说可能看起来很酷,但它会分散注意力,实际上可能会让人们想要避开你的网站。它使您难以专注于屏幕中间的文本。您不希望人们记住旋转的图像,而是要记住您的作品集,对吧?

您在以下方面也有 404:

  1. http://www.nicholasabrams.com/ScrollSpy_files/result-light.css
  2. http://www.nicholasabrams.com/example-images/testing_station.png

404 不好有几个原因,它们是一种资源浪费,因为它们会减慢页面的加载速度,因为它试图找到某些东西但没有找到,最后,它们会对您的 SEO 产生负面影响,特别是Google PageRank 会为您停靠任何 404。

找到一种方法来使用一个版本的 jQuery,它最终会让你拥有多个版本的库,并且让你的用户加载一堆库是带宽杀手,即使他们是 CDN 的.

【讨论】:

  • 好的,我确实意识到这很糟糕,感谢您的回复......但是我不希望看起来很顽固,但我想理解为什么不,而不是仅仅知道它应该是。如果可能的话,我正在寻找更技术性的答案。为什么不存在冲突?为什么 jquery 不简单地构建在库上,而不是制作相似但不同但彼此不兼容的源。几乎所有的 JQuery 脚本都调用不同的库,这很好……因为它基于一种以兼容性着称的语言,所以很愚蠢。
  • JQuery 的重点是为那些不能或不想编写 javascript 代码的人准备的。我想我已经被淘汰了……
  • @user2691203:这根本不是真的。 jQuery 是一个 JavaScript 库,用于处理浏览器的不一致问题,并为与 DOM 交互和发送 AJAX 请求提供了一个简化的接口。这绝对是 not “对于那些不能或不想编写 javascript 代码的人”。在接触 jQuery 之前学习 JavaScript,这样的事情不会成为问题,因为您将拥有修复这些脚本(或编写自己的脚本)的工具。
  • @user2691203 - 这是一个荒谬的说法,jQuery 是 JavaScript 的抽象,因为它是用 JavaScript 编写的。
  • 少写。多做。这是他们首页上的口号,也是元描述中技术描述中的第一个词(参见:jquery.com...),所以请原谅我将 JQuery 视为一种更简单的 Javascript 形式!我正在尝试学习 Javascript 和 Jquery,这是该过程的一部分。不要忘记你来自哪里,谦虚是智慧的象征,是任何领域的真正专家。
猜你喜欢
  • 2017-01-25
  • 2015-09-14
  • 2011-04-28
  • 1970-01-01
  • 2013-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多