优化网站设计(十):最小化JAVASCRIPT和CSS

news/2024/5/13 15:13:35/文章来源:https://blog.csdn.net/weixin_34023982/article/details/85555790

前言

网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议。这方面的研究一直没有停止过,我在不同的场合也分享过这样的话题。

作为通用的原则,雅虎的工程师团队曾经给出过35个最佳实践。这个列表请参考  Best Practices for Speeding Up Your Web Site  http://developer.yahoo.com/performance/rules.html ,同时,他们还发布了一个相应的测试工具Yslow http://developer.yahoo.com/yslow/

我强烈推荐所有的网站开发人员都应该学习这些最佳实践,并结合自己的实际项目情况进行应用。 接下来的一段时间,我将结合ASP.NET这个开发平台,针对这些原则,通过一个系列文章的形式,做些讲解和演绎,以帮助大家更好地理解这些原则,并且更好地使用他们。

准备工作

为了跟随我进行后续的学习,你需要准备如下的开发环境和工具

  1. Google Chrome 或者firefox ,并且安装 Yslow这个扩展组件.请注意,这个组件是雅虎提供的,但目前没有针对IE的版本。
    1. https://chrome.google.com/webstore/detail/yslow/ninejjcohidippngpapiilnmkgllmakh
    2. https://addons.mozilla.org/en-US/firefox/addon/yslow/
    3. 你应该对这些浏览器的开发人员工具有所了解,你可以通过按下F12键调出这个工具。
  2. Visaul Studio 2010 SP1 或更高版本,推荐使用Visual Studio 2012
    1. http://www.microsoft.com/visualstudio/eng/downloads
  3. 你需要对ASP.NET的开发基本流程和核心技术有相当的了解,本系列文章很难对基础知识做普及。

本文要讨论的话题

这一篇我和大家讨论第十个原则:Minify JavaScript and CSS (最小化JAVASCRIPT和CSS)。

在开始之前,我闲扯几句:不自觉地就写到了第十篇了,这个系列我觉得是很有必要的,虽然雅虎的这些最佳实践,我在很多年前就看过,也基本上在按照这些原则进行实践。但我观察下来有不少朋友还对此不了解,或者说即便知道这些原则,但具体在应用的时候也遇到些困惑(这些原则之间本身也可能存在“矛盾”)。所以我觉得利用一些时间,结合自己的实践经验,为大家讲解和演绎,文中提到了很多想法,更重要的是我会解释为什么这么做,为什么不那么做等等,希望大家能知其然,也知其所以然。最后我还会提供相应的工具、实践的例子。

言归正传,"最小化JAVASCRIPT和CSS“ 这条原则主要讲的是,我们应该尽可能地减少这两种文件的体积,以便加快下载速度。

  1. 去除不必要的格式符、空白符、注释符。这个操作,其实可以理解为是一种格式化,虽然它操作的结果其实是去除掉原始文件的那些格式。
  2. 模糊(Obfuscation)处理JAVASCRIP脚本源代码。

要理解这个行为,我们可以来看两个文件

image

这可能是我们最常用的两个脚本文件了。其实他们是同一个脚本文件,作为约定,带有min字样的脚本文件我们通常称为“压缩过的版本”——需要注意的是,这与“优化网站设计(四):对资源启用压缩”这篇文章中谈到的压缩不是同一个概念。从他们的体积上可以看出来,“压缩”比可以高达 65%,这可以节省很多的网络流量,以及宝贵的下载时间。

那么这种“压缩”是如何做到的呢?我们通过查看两个文件就可了解

image

原始文件,我们通常称为“格式良好”的脚本文件,里面包含了8756行,有着丰富的注释,换行符等,这种格式很易于阅读和理解,他同时也可以为开发工具(例如Visual Studio)提供智能感知方面的支持。我们再来看“压缩”过之后的文件。

image

这个文件只包含6行,如果将顶部的几句注释也去除掉,实际上只有3行代码,并且我们可以看到这些代码是被处理过的,因为那些方法名,参数名都被处理成了尽可能简短的名称。很显然这样的代码不适合人类阅读,但对于计算机,具体来说是浏览器的JAVASCRIPT执行引擎来说是没有问题的。如果你有兴趣了解这些名称的映射关系,可以参考另外一个文件(jquery-2.0.0.min.map)

image

 

看起来你理解了这样做的好处,也大致知道怎么做了吧。虽然如此,我们不可能人工去做这样的事情,这个挑战太高了。通常我们会借助一些工具来实现,例如文章中提到的两个工具

  1. JSMin : 这个工具的名气较大,可以对JAVASCRIPT进行最小化处理。

image

  1. YUI Compressor  : 这个不仅仅可以对JAVASCRIPT进行压缩,也可以对CSS进行压缩。很遗憾,它是一个java工具,可能在使用上面会有些限制。但你可以通过另外一个地址使用在线的版本:http://refresh-sf.com/yui/ 

image

值得一提的是,在进行JAVASCRIPT的最小化处理(尤其是要进行模糊处理)之前,需要确保脚本文件的语法合法性,并且强烈建议将该文件复制一份作为备用,因为通常这些操作都是不可逆的。

为了检查脚本中的语法合法性,可以使用另外一个工具JSLint

image

这个工具有针对Visual Studio 的插件,你可以通过扩展管理器进行安装。

image

 

我最后要补充一下,除了对JAVASCRIPT和CSS做这种最小化之外,我们有时候可能也会对HTML标记文本做最小化处理(主要是格式化),此时可以使用下面这个工具:Absolute HTML Compressor

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_748318.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

易班站内应用、轻应用、网站接入、移动应用的区别

一、站内应用 地址如下: index.jsp对应如下页面 启动tomcat服务器,此时访问站内地址( http://f.yiban.cn/wangyang)。即可得到如下界面: 可以看到我们的应用是嵌套在易班的一个iframe中 二、轻应用 index.jsp对应如下…

ASP.NET MVC实现网站验证码功能

网站添加验证码,主要为防止机器人程序批量注册,或对特定的注册用户用特定程序暴力破解方式,以进行不断的登录、灌水等危害网站的操作。验证码被广泛应用在注册、登录、留言等提交信息到服务器端处理的页面中。 在ASP.NET网站中应用验证码…

BlueDream.js(蓝梦)——jQuery网站使用引导插件

小菜在前端世界游荡有些时间了,常见的插件多少有些了解,但却很少看到用户引导插件。 所谓用户引导插件,就是在第一次使用某个网站时,会弹出一些小动画,告诉你网站的基本使用方法,帮你快速入门。 这应该是个…

Nginx做为web服务器的网站

2019独角兽企业重金招聘Python工程师标准>>> Nginx 超越Apache的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中有新浪、网易、腾讯等门户网站,六间房、酷6等视频分享网站,Discuz!、水木社区等知名论坛,豆瓣、YUPOO等新兴Web 2.0网站。 N…

ASP.NET vNext MVC 6 电商网站开发实战

国内第一个《微软下一代网站开发框架:ASP.NET MVC 6 新特性揭秘 》课程 微软特邀讲师 徐雷!周六晚8点YY预定:http://t.cn/RPKMLGF 微软Visual Studio 2014 即将发布!ASP.NET MVC 6有什么新特性? Web API 3.0有什么新变…

网站301重定向怎么设置

做网站优化,我们基本知道url标准化需要采用301重定向。重定向说直白点,就是通过方法将各种网络请求重新定个方向转到其它位置,也就是通常说的,网页跳转。那么如何设置和制作301重定向呢?下面列举几个比较常见的情况&am…

如何开发一个网站

希望本篇文章对入门的朋友有所帮助 那么我写这篇文章的目的也就达到了如何开发一个网站? 开发语言不是问题 今天我们就以php为基础展开。一。开发环境:我们熟悉的lamp是当前的流行架构 即 LINUXAPACHEMYSQLPHP 入门的朋友把主要精力放在php与mysql上即可。对于php需…

使用基本MVC2模式创建新闻网站

登录成功后跳转到新闻展示页面: 转载于:https://www.cnblogs.com/hzlshijie/p/10886921.html

太狗血了!分享一次网站百度收录排名异常的检查记录

事情是这样的:我的博客现在的百度收录异常惨淡!而且,我还叮嘱哪些喜欢转载我博客博文的朋友,不要转载半个月内发布的文章,因为我以为几个月来百度不收录、排名下降严重的是因为我先后更换主题-->换用360网站卫士-->文章被人…

环保网站模板源码下载 环保网站制作建设_南岸区拍摄vr全景联系方式,环保公司网站建设,看这里...

首页 > 新闻中心发布时间:2020-11-07 05:26:11 导读:信事达科技为您提供南岸区拍摄vr全景联系方式,环保公司网站建设的相关知识与详情: 首先,我们可以制作投稿,这里说明粘贴是什么,所谓的“投稿”可以在…

c语言做网站_还不懂你现在学习的编程语言能做什么?还不懂如何进阶?过来看图...

前言说七说八发现最近有同学问我编程如何进阶、学什么、能做什么之类的问题,我把我的一些回答用文章的形式编写本篇内容。本篇文章的配图标注、内容并不代表仅有;本篇仅以个人经验及当前大学(大专、本科)相关课程作对比,列出比较常规的语言发…

大型网站架构的演化

一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想…

mouseout、mouseover和mouseleave、mouseenter的区别

mouseenter:当鼠标移入某元素时触发。 mouseleave:当鼠标移出某元素时触发。 mouseover:当鼠标移入某元素时触发,移入和移出其子元素时也会触发。 mouseout:当鼠标移出某元素时触发,移入和移出其子元素时…

美多家网站因网络攻击短暂瘫痪

新华社华盛顿10月21日电(记者林小春)美国两家网络服务提供商迪恩与亚马逊21日遭受网络攻击,导致美国东海岸、欧洲部分地区的网民一度无法使用网上支付系统贝宝、社交媒体网站推特和在线视频网站奈飞等多家网站。 迪恩在其官网公布的消息说,该公司的域名服…

使用HTML DOM 来分配事件 —— onmouseover和onmouseout ,onmousedown和onmouseup

一&#xff0c; onmouseover 和 onmouseout 事件 onmouseover 和 onmouseout 事件可用于在用户的鼠标移至 HTML 元素上方或移出元素时触发函数。 一个小例&#xff1a;鼠标未在上面前 移到上面后 &#xff08;1&#xff09;关键代码<body> <div οnmοuseοver"…

(下载)2套从收费网站上下载的一些开发文档模板

http://files.cnblogs.com/lovecherry/spp.rar 有的比较罗嗦&#xff0c;大家可以根据自己的情况改进。

大型网站数据库优化和故障跟踪与排查(上篇)

【主题】<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />在某个大型网站中&#xff0c;有张保存新闻记录的表&#xff0c;数据库量5万左右&#xff08;其实不算大&#xff09;&#xff0c;网站页面中的新闻都是从该表中动态生产…

android五种布局局限性,手机网站常用的六种布局方案优缺点分析

现在越来越多的小伙伴们开始进行了手机网站的移动端开发。但是&#xff0c;手机网站常用的六种布局方案的优缺点&#xff0c;大家又必须去了解&#xff0c;才能决定自己使用什么样的布局方案。下面我们所说的是需要兼容的系统为iOS 5、Android 2.3、Windows Phone 8。对于普通页…

管家婆系统怎么创建提醒服务器,管家婆辉煌Ⅱ++10.1 -管家婆软件官方网站

网站资料此次&#xff0c;管家婆辉煌系列同时发布八大子系列共24个版本&#xff0c;即&#xff1a;辉煌Ⅱ TOP系列辉煌Ⅱ TOP五金建材版系列辉煌Ⅱ TOP皮革布匹版系列辉煌Ⅱ TOP电脑通迅版系列。辉煌Ⅱ系列辉煌Ⅱ五金建材版系列辉煌Ⅱ皮革布匹版系列辉煌Ⅱ电脑通迅版系列。此次…

什么是SAAS模式网站?

说到“SAAS”&#xff0c;它的读法非常有趣&#xff0c;有“萨斯”&#xff0c;有“S.A.A.S”&#xff0c; 还有中文白话“啥事”的。不过&#xff0c;大多不熟悉的朋友第一反应可能是非典?&#xff0c;别误会&#xff0c;此“SAAS”非彼“SARS”&#xff0c;一字之差&#xf…