用javascript预加载图片cssjs的技巧研究.docxVIP

用javascript预加载图片cssjs的技巧研究.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用javascript预加载图片、css、js的方法研究预加载的好处可以让网页更快的呈现给用户,缺点就是可能会增加无用的请求(但图片、css、js这些静态文件可以被缓存),如果用户访问的页面里面的css、js、图片被预加载了,用户打开页面的速度会快很多,提升用户体验。在用到一些大图片展示的时候,预加载大图是很不错的方法,图片更快的被呈现给用户。不多说了,作为一个前端攻城师都懂的,下面分享我做的测试和得到的结果。 先说需要知道的服务器返回的status code:status-code: 200 - 客户端请求成功status-code: 304 - 文件已经在浏览器缓存中,服务器告诉客户端,原来缓冲的文档还可以继续使用。本文测试判断文件被是否被缓存,用的就是判断是否返回304. 下面针对预加载的几个方法,在不同的浏览器下加载img/js/css做个测试,主要包括new Image()、object、iframe。以下加载测试的js、css、图片文件,是从几个门户网站找的(为啥找几个?是为了尽可能滴测试到特殊的情况,测试中还真遇到了)。 1、测试用new Image()预加载1.1、new Image()加载new Image().src=/tps/i2/T1iQhUXnxpXXXXXXXX-171-48.png;//淘宝?new Image().src=/module/logo/logo_2011_02_22.png;//拍拍?new Image().src=/picture/services/images/logo.png;//有啊?new Image().src=/t35/style/images/common/header/logoNew_nocache.png;//新浪*/然后再把图片添加到页面内:imgsrc=xxx /加载图片没啥好说的,IE6-9/CM/FF/OP/都返回304,预加载成功。1.2、测试用new Image()加载cssnew Image().src=/p/global/1.0/global-min.css;//淘宝(1)?new Image().src=/member/activate.css;//拍拍(2)?new Image().src=/picture/services/base.css;//有啊(3)?new Image().src=/t35/skin/skin_008/skin.css;//新浪(4)?// /css/newstyles.css?// 可以用这个测试IE下Expires设置的时间小于当前时间的情况再把css添加到页面内这个有区别了:CM/OP,都返回304(无论有没有设置Expires)。FF, 全部返回了200。IE,1/2/4都返回304,而3返回200。对比返回的HTTP-Header可以发现:1/2/4都设置了Expires过期时间,而3没有设置。说明IE下缓存需要设置Expires(并且设置的时间要大于当前时间),而FF不支持利用new Image()预加载。1.3、测试用new Image()加载jsnew Image().src=/s/kissy/1.1.6/kissy-min.js;//淘宝(1)?new Image().src=/js/pp.noticeBoard.js;//拍拍(2)?new Image().src=/picture/services/cms_core.js;//有啊(3)?new Image().src=/t35/miniblog/static/js/top.js;//新浪(4)?new Image().src=/act/static/week/fri/bang/day_1_p_0_10.js;//QQ(5)再把js添加到页面内。CM/OP,都返回304FF,只有5返回了304,也只有5的HTTP-Header最简单(包括:Date、Server、Expires、Cache-Control)。另外几个的响应头信息内容都比较多,但也都设置了5里面的这几个。找规律,发现另外几个的响应头都有:Content-Type:text/javascript,而5里面没这个。IE,2/5返回了304,1/3/4返回200,对比响应头,应该还是Content-Type影响的,IE里面2/5都没看到Content-Type。另外,感谢AndrewZhang(/AndyWithPassion/)提到,IE下 image 预加载js在httpwatch下查看content,资源的加载并不是完整的。我这里测试也是如此。貌似有字节限制,测试中2返回的是完整的,5有一部分内容丢失了。所以用new Image加载JS一点都不可取。 这里总结下:预加载图片用new

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档