项目:JavaScript 和 CSS 压缩 API
本项目的目标是开发一个 Joomla 平台库,以便在将文件发送到客户端浏览器之前压缩和合并 JavaScript 和 CSS 文件。
开发者可以将结构良好、有注释且易于阅读的文件放在一边,向最终用户提供经过优化的压缩文件,以便快速下载。更重要的是,他们可以将单个的 JavaScript/CSS 文件发送到渲染页面,而不是发送多个单独的文件。开发者可以减少页面下载时间并节省宝贵的带宽。这将使用户获得更快的页面加载速度,并使网站管理员减少带宽使用。
Kavith Thiranga Lokuewage – 个人故事
我来自斯里兰卡,一个位于印度洋上的美丽小国。我的家乡是霍拉纳(+5:30 UMT),一个有点乡村的小镇,距离首都科伦坡有两个小时的车程。在谷歌地图上查看霍拉纳 - http://g.co/maps/ug6hr。
我是斯里兰卡 APIIT 学生,隶属于英国斯塔福德郡。我在我的学院学习 BSc (Hons) 计算机专业,专攻软件工程,目前是第二学期一年级。
实际上,自从我上中学以来,我就对网络开发充满热情。这影响了我为我工作的几家非营利组织开发了一些小型网站。这就是我的网络开发生涯的开始。一开始,只是关于一些静态内容,比如关于我们、联系我们和一些图片画廊等。了解了 PHP 之后,我发现网络不仅仅是静态的 HTML 页面。我利用 PHP 的力量在我的网页上添加了很多强大的动态内容。
大约四年前,我读了一篇关于“Joomla - 网络内容管理系统”的博客文章。当我读到它时,我感到很震惊。例如,我知道自己实现一个网站用户管理系统有多难。好吧,这仅仅关于用户。文章管理、横幅管理怎么办?还有,天哪,看看扩展目录。这真的可能吗?当我读到这篇文章时,我脑海中浮现出的这些疑问。我并没有很好的PHP编程技能,所以这对我说来就像一个星系。
我开始学习关于Joomla的知识。我发现了一本名为《Joomla傻瓜指南》的书,它对我的Joomla知识产生了巨大影响。从那时起,我开始在我的网站中使用Joomla,当然,这使我的网络开发生活变得简单而精彩。我用Joomla更新了我大部分的先前网站,我很乐意谈谈我基于Joomla的网站收到的反馈。所以,我总是有动力学习更多。
几个月前,我遇到了一个情况,我需要为我的学院学生开发的Joomla网站开发一个自定义扩展,一个小扩展。这是我扩展开发的开端。《精通Joomla框架和扩展开发》这本书帮助了我。还要感谢GSOC,现在我有了由Mark和Louis编写的《Joomla编程》这本书。我在Joomla社区的帮忙下,扩展了我的Joomla知识。
如今,许多网络应用程序包含大量的JavaScript和CSS文件。由于网络应用程序数量增加及其丰富的内容交互,开发者期望他们的应用程序越来越多地使用CSS和JavaScript。因为这些文件决定了页面在客户端浏览器中的显示方式,所以在CSS和JavaScript文件完全下载之前,页面渲染会被延迟。所以,随着JavaScript和CSS文件数量的增加,渲染网页将需要更多的时间。
为什么会花那么长时间呢?
服务器在毫秒内生成一个页面。所以这不应该是问题。问题似乎是由于两件事的组合。首先,带有大量注释块、不必要的空格、换行符和较长的变量名(这些都是为开发者而非最终用户设计的)的JavaScript和CSS文件将增加文件大小,从而增加下载时间。其次,页面的大量单独的JavaScript/CSS文件会导致每个文件对服务器的额外往返一次,这将增加服务器请求的数量。因此,随着服务器请求数量的增加,页面的加载时间也会增加。为了开发使用起来既好又快的网络应用程序,开发者需要优化JavaScript/CSS文件的大小和数量,并确保最终用户拥有最佳体验。
这个项目的目标是提出一个库,用于Joomla平台,以便在发送到客户端浏览器之前压缩和合并JavaScript和CSS文件。这样,开发者可以将结构良好、有注释且易于阅读的文件保留下来,并将压缩文件提供给最终用户,这些文件已经针对快速下载进行了优化。更重要的是,他们可以将一个单一的合并JavaScript/CSS文件发送以渲染页面,而不是发送多个单独的文件。这样,开发者可以减少页面下载时间,同时节省宝贵的带宽。这将使用户享受更快的页面加载,并使网站管理员减少带宽使用。
项目的目标是实现一个Joomla平台库,具备以下功能。它将包含使用算法压缩JavaScript/CSS文件的类,以确保代码输出的安全性,并包含将多个JavaScript/CSS文件合并成一个压缩文件的类,从而减少Web应用的带宽使用。每个类都提供多个函数以实现上述目标。
压缩JavaScript文件
总结来说,我们可以通过以下步骤压缩JavaScript:删除所有注释、不必要的空白,并将所有局部变量名缩短为一个字符。
- 备份字符串 – 从JavaScript中删除所有字符串并存储以供稍后重新插入。
- 删除注释 – 从脚本中删除所有注释块。
- 重命名局部变量 – 将所有局部变量名替换为单个字符。
- 保留关键字 – 在删除空白之前,备份脚本中需要空白的关键字,并用标识符替换它们。(例如:var、return、function... 需要后跟一个空格)
- 删除不必要的空白 – 删除不必要的空格,包括制表符和新行。
- 恢复关键字 – 替换在第4步中备份的关键字,用标识符。
- 恢复字符串 – 恢复在第1步中备份的所有字符串。
压缩CSS文件
压缩CSS文件可以通过几个步骤完成。
- 删除注释。
- 删除不必要的换行符和分号。
- 删除小于1的浮点数的第一个数字(例如:0.56 -> .56)
- 删除零值的前面的单位。(例如:margin:0px -> margin:0)
- 将"none"替换为0。(例如:border:none -> border:0)
- 删除不必要的空白 – 包括{};字符周围的制表符和空格。
- 如果可能,压缩HTML颜色代码(例如:#FF0088 -> #F08)。
合并文件
合并文件可以通过将多个javascript/css文件合并成一个单独的.js或.css文件来减少带宽使用。可以在将文件合并成一个文件之前压缩JavaScript/CSS文件。因此,文件将非常优化,以便快速下载。
在Joomla社区杂志上发布的某些文章代表了作者在特定主题上的个人观点或经验,可能不与Joomla项目的官方立场一致。
通过接受,您将访问https://magazine.joomla.net.cn/外部第三方提供的服务的服务
评论