一个link加载多个css文件

细看正则时匹配慕课网链接时发现的,一个link加载多个css文件

http://static.mukewang.com/static/css/??base.css,common/common-less.css?t=2.5,u/u_common-less.css,u/plans-less.css,u/dynamic/home-less.css?v=201708111926

淘宝也有这样的链接

http://a.tbcdn.cn/p/fp/2011a/??html5-reset-min.css,global-min.css,header/header-min.css,product-list/product-list-min.css,attraction/attraction-min.css,expressway/expressway-min.css,category/category-min.css,category/sub-promotion-min.css,guide/guide-min.css,hotsale/hotsale-min.css,bottom-gg/bottom-gg-min.css,subfooter/subfooter-min.css,local-life/local-life-min.css,footer/footer-min.css?t=20111213.css

原先我们使用link时每一个加载一个css文件,这种方式有一些缺点:

1、浏览器可以并行的http请求数量有限,不能满足大型站点的要求;

2、如果不支持keep-alive,tcp连接的重建也需要花费一些时间,导致延迟增加;

3、即使支持keep-alive,过多的请求头和响应头会增加大量的数据开销;

上面链接的方式是在服务器接收到请求之后,把页面需要的资源进行合并,一起返回给浏览器,这样只需要一次http请求,就能够获得所需要的资源文件,节省网络开销。

只是这是网站的CDN具备的独有功能,这种写法并不是html的规范,因此并不是所有人都可以这么用的,只有支持这种写法的服务器,才可以这样写。

但是采用这种合并js、css的方式会有一些缺陷:

1、静态资源服务器需要动态合并静态资源到一个输出流中,也就是说,静态资源服务器要有一个网关应用程序去支持这种处理。当然这种处理是要消耗额外的硬件性能。
2、文件整合会使http缓存能力降低,一定程度上增加了服务器的压力。试想一下,如果我们有四个js文件。A.js,B.js,C.js,D.js。我们如果只改变了D.js。正常情况下。浏览器还是可以继续使用A、B、C的缓存,只更新D.js就可以了。但是由于我们采用了合并的方式。现在我们需要重新返回四个文件的合并结果。

时间: 2024-10-13 18:25:08

一个link加载多个css文件的相关文章

JS动态加载JS与CSS文件

JS动态加载JS与CSS文件 DEMO 一 HTML页面   jsforjscss.html 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"&

Django中加载js和css文件

Django中加载js和css文件 项目的目录结构如下: mysite |-mysite |-|-static |-|---js和css文件 |-|-|-init.py |-| |-models.py |-| |-views.py |-|-init.py |-|-settings.py |-|-urls.py |-templates |-|-(template html 文件) settings.py中static变量的设置: STATIC_ROOT = os.path.join(os.path

Maven工程webinfo下面的JSP页面无法加载.js、.css文件的解决方案

--下面是我的工程路径 --我jsp的写法 -----启动工程,访问js文件的路径是这样的, href="http://localhost:8080/activiti/css/public.css" 怎么看都没毛病.但是提示404找不到. 所以判断是因为访问被拦截住了.最后分析查找得知,是因为在web.xml缺少了SpringMVC拦截设置. -----下面这段代码来源于其他博客转载 通过在web.xml中添加如下设置后,问题的得以解决: 注意: 下面这段代码,要写在引入springM

动态加载js、css 代码

一.原生js: 1 /** 2 * 加载js和css文件 3 * @param jsonData.path 前缀路径 4 * @param jsonData.url 需要加载的js路径或css路径 5 * @param jsonData.type 需要加载的类型 js或css 6 */ 7 function loadWriteFiles(jsonData) 8 { 9 jsonData.path = jsonData.path != undefined ? jsonData.path : "&q

tomcat 无法加载js和css 等静态文件的问题

前段时间做了个网站,在本地tomcat测试都没有问题,但是部署到阿里云上之后,系统样式全没了.jsp等动态页面访问正常. 打开浏览器监控发现所有的css 和js 文件返回都是404 .直接访问单个的css 文件也同样是404.以为是路径错了,于是一一对了一遍各个文件的路径和服务器上 tomcat路径方面的设置 发现路径没有问题.在网站更目录创建一个css文件和html文件均不能访问.确认不是网站路径的问题. 然后怀疑是tomcat 和 Apache 冲突了,或者可能是Apache 的设置不对.因

用javascript预加载图片、css、js的方法研究

预加载的好处可以让网页更快的呈现给用户,缺点就是可能会增加无用的请求(但图片.css.js这些静态文件可以被缓存),如果用户访问的页面里面的css.js.图片被预加载了,用户打开页面的速度会快很多,提升用户体验.在用到一些大图片展示的时候,预加载大图是很不错的方法,图片更快的被呈现给用户.不多说了,作为一个前端攻城师都懂的,下面分享我做的测试和得到的结果. 先说需要知道的服务器返回的status code:status-code: 200 - 客户端请求成功status-code: 304 -

动态加载js和css的jquery plugin

一个简单的动态加载js和css的jquery代码,用于在生成页面时通过js函数加载一些共通的js和css文件. Java代码   //how to use the function below: //$.include('file/ajaxa.js');$.include('file/ajaxa.css'); //or $.includePath  = 'file/';$.include(['ajaxa.js','ajaxa.css']);(only if .js and .css files 

js插件动态加载js、css解决方案

最近因为工作需要做了一个js自动导入的插件,一开始很天真的以为动态创建个script添加到head中就ok了,试了之后才发现了问题,就是如果同时引入了多个js文件,而且后一个文件中用到了前一个文件中的变量,那就会报错,靠~~悲催了,就是说js如果动态加载(非浏览器加载因为浏览器加载时同步加载的会等待前一个js加载完成后才进行下一个js加载,这样就不会出现问题)那加载的文件是异步进行的,难怪啊!然后在网上找了些资料说用ajax同步加载,然后我试了真可以,下面就是我的代码分享出来给大家,但是注意这样

加载和解析XML文件

加载和解析XML文件 1.XML格式 <?xml version="1.0" encoding="utf-8" ?> 表示XML文件版本, 内部文本使用的编码 <root> 表示根节点 <CityName>北京</CityName> 北京 一个结点, CityName是结点名, 北京结点值 <Item key="1" value="A"></Item>