- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我读到,连接并可能压缩 JavaScript 文件将使应用程序运行得更快,因此我决定尝试一下。
我认为我的大部分页面(尽管不是全部)都下载了至少 1mb 的 javascript,那么为什么不压缩和聚合它呢?
嗯,事实证明我认为性能比以前更差了。 Firebug 报告“DomContentLoaded”在应用程序的任何随机页面上花费了 1.17 秒。这是正常情况下吗?就像哇。
基本上,我的应用程序 javascript 现在聚合了该站点的所有文件。每个文件都会查找一个主 ID,如果存在,它就会运行一些代码。如果没有,它就进入下一个功能 block 。
我还放入了一堆库以及我的应用程序代码。这是我正在使用的库。我应该汇总这些,还是不汇总?
<include>**/font/font.js</include>
<include>**/json/json2.js</include>
<include>**/jwplayer/jwplayer.js</include>
<include>**/underscore/underscore.js</include>
<include>**/jquery/jquery-1.7.1.js</include>
<include>**/jquery/jquery-ui-1.8.16.custom.min.js</include>
<include>**/jquery/jquery.cookie.js</include>
<include>**/jquery/jquery.jcrop.js</include>
<include>**/jquery/jquery.tmpl.js</include>
<include>**/jquery/farbtastic.js</include>
<include>**/simpleyui/simpleyui.js</include>
<include>**/audio-player/audio-player.js</include>
<include>**/tiny_mce/tiny_mce.js</include>
<include>**/jscharts/jscharts.js</include>
我认为我的主要足迹在 jquery-1.7.1.js
(100k)、jquery-ui-1.8.16.custom.min.js
(206k )、jwplayer.js
(83k)、simpleyui.js
(103k)、jscharts.js
(100k) 和 tiny_mce.js
(186k)。这些千字节量令人惊讶地缩小了。
我已经尝试过按需压缩内容,但这实际上会使速度变慢。我猜rackspace cloud的cpu不是很快?它为请求增加了大量时间。按需关闭 gzip 似乎会让事情变得更好。
编辑:我可以确认将 javascript 放在页面底部没有什么区别。我可以确认,删除所有库(如 jquery、audio-player、jwplayer 等)本身总共需要 1 秒。
我的应用程序代码(文件较多,但总体代码可能较少)大约需要 0.2 到 0.3 秒。
我 99% 确信问题与现在的下载无关,而与执行速度有很大关系。
您建议我做什么来提高页面的性能?
最佳答案
您可以在每个页面上仅加载您需要的 JavaScript 库。
在我当前的项目中,我们正在努力减少对外部 javascritpt 库依赖项的依赖,方法是封装功能组件并将它们传递给依赖项管理器,该管理器仅加载每个特定页面所需的 javascript 库(如果页面有 3 个模块)那么它只加载这些所需的库)。
您可以使用这种方法来消除对特定库的大量不必要的请求。
尽可能减少对外部库的依赖。
此外,我们还采取了措施,通过将代码转换为直接使用 DOM 来减少对 jQuery 的依赖,例如使用 document.getElementByID()
和 getElementsByTagName()
而不是 jQuery('#myId')
或 jQuery('table.myTableClass')
。这有助于减少一些页面,使它们根本不使用任何依赖项,从而极大地延长了加载时间。
另一个例子是,如果您只需要 CSS 选择器而不是整个 jQuery 功能,您可以使用 Sizzle这是独立的 CSS 选择器引擎,从而将 80+ KB 的 jQuery 削减为 Sizzle 所需的 4KB。我确信相同的方法可以与您的其他库一起使用,以减少应用程序中的许多不必要的冗余。
关于javascript - 我该如何处理这个 800kb 的 JavaScript 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8389725/
我将文件读入字符串,更改第一行,然后将此字符串写入新文件。我通过以下代码(稍微缩短了一点)来做到这一点: while(jspIterator.hasNext()){
adb shell dumsys meminfo返回的内存是kB还是KB? 哪里: kB = 1000 bytes KB = 1024 bytes 最佳答案 它是 KB(1024 字节)或 ki
我能够解析 xml 文件,并且我想下载 xml 给出的 url 的文件。我有以下代码: try{ /* Create a URL we want to load some xm
这个问题在这里已经有了答案: Android, Compressing an image (2 个答案) 关闭 10 个月前。 我正在 android 中开发一个应用程序,它将捕获照片并存储在 sq
我将文件保存在我的 MySQL 数据库中的 LONGBLOB 列上,当我在我的 IDE 中执行选择时,我注意到一些 base64 文件内容有消息 206.2 kB (204.8 kB loaded)放
使用 Indy 的 TIdTCPServer 组件,一个包被分两部分接收,但客户端发送了一个 64 KB 的包。 如何在服务器 OnExecute 事件中接收完整的包? 现在我放了一个原型(proto
我正在编写一个正则表达式,它可以捕获一个值及其后面的任何 mb、kb、gb、字节正则表达式是: (?\p{N}+)(?:\s*)(?[mb|kb|gb|b|bytes]) 但是当给定输入“40
我刚刚创建了 range(1,100000) 的 python 列表. 使用 SparkContext 完成以下步骤: a = sc.parallelize([i for i in range(1,
我的要求是将相机捕获的图像上传到服务器,但它应该小于 500 KB。如果大于 500 KB,则需要减小到小于 500 KB (但稍微接近) 为此,我使用以下代码 - @Override pub
我有以两种不同方式加载和保存图像的代码-第一种使用openCV,第二种使用PIL。 import cv2 from PIL import Image img = cv2.imread("/home/m
我有一个 android 视频播放器,它显示 SD 卡上的所有视频名称和文件大小,但大小以字节显示,我无法将它转换为 KB、MB、GB 等。我尝试除以 int值增加 1024 但它不起作用。它打印出错
任何人都可以向我解释一下摘要报告中如何测量吞吐量、Kb/秒和平均字节数吗? 我得到了以下登录操作的总结报告。 Label : Login Action(sampler) Sample# : 1 ave
我需要将上传图片的大小调整为最大 100 kB。可能吗? 例如:尺寸为 1200x600 的 image1.jpg 有 280kB,我需要将其调整为 <100kB。 最佳答案 ImageMagick
我需要将上传图片的大小调整为最大 100 kB。可能吗? 例如:尺寸为 1200x600 的 image1.jpg 有 280kB,我需要将其调整为 <100kB。 最佳答案 ImageMagick
我有例如: Document doc = Jsoup.connect("http://example.com/").get(); String title = doc.title(); Documen
我正忙于Android通话录音机,当我调用电话时录音机显示它正在录音,在我挂断电话后,它保存文件,但保存的文件是0 KB 有没有人遇到同样的问题,请帮我解决一下。 这是我的录制代码 recorder
我正在以 KB 为单位将文件存储在数据库中。我尝试将文件信息返回的文件长度转换为 KB,如下所示。 FileInfo FileVol = new FileInfo(DownloadPath); int
在我的应用程序中,显示照片中的所有视频。选择视频后,将使用 avplayer 播放该视频。但是当我尝试获取所选视频文件的大小(kb)时,它显示错误。当我尝试复制视频文件时出现同样的错误。 我已获取这些
我正在尝试在 firebase 存储中上传图像,我希望图像不应大于 50 kb 我正在尝试获取位图的大小,以便我可以知道位图的大小是否超过 50 kb这图片不会显示在画廊中 我已经尝试了许多人建议的代
在我的 android 应用程序中,它收集了一些数据和照片扔手机。 之后它将所有这些东西插入到一个对象中,然后将这个对象发送到服务器。 在将此对象发送到服务器之前,我想向用户显示数据的大小以及将此数据
我是一名优秀的程序员,十分优秀!