项目: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 for Dummies》这本书,它对我的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/之外第三方外部服务提供的服务
评论