网页图片预加载技术
说完了图片的延时加载,再来说一下图片的预加载。我们经常可以看到浏览器在加载大图的时候,通过自上而下这样铺过来,这样一来一是对用户体验不好,而是在图片下载完之前我们完全不知道图片大小,不利于控制网页界面。那么有没有一种方法,能让图片整体一次加载到网页上呢,答案是有的,那就是图片预加载技术。来看下面一个例子:
…阅读更多>>
说完了图片的延时加载,再来说一下图片的预加载。我们经常可以看到浏览器在加载大图的时候,通过自上而下这样铺过来,这样一来一是对用户体验不好,而是在图片下载完之前我们完全不知道图片大小,不利于控制网页界面。那么有没有一种方法,能让图片整体一次加载到网页上呢,答案是有的,那就是图片预加载技术。来看下面一个例子:
…阅读更多>>
当一个网站访问量过大时,过多的图片展示往往会影响其网页的加载速度,过多没用的图片加载既影响用户体验,又会增加服务器的负载,可以说有百害而无一利。相信做前端的人都知道“Ajax”,Ajax的核心是“按需异步加载”:当用户需要数据库时候,去服务器上拿数据,然后给用户展示出来,这样做的优点无疑是很多的。实际上,网页在加载图片时也会有类似Ajax的异步加载技术。
…阅读更多>>
文章开始之前先说博主前端时间遇到的一个尴尬的例子,手里有个网站,所有JS效果都是用jQuery写的,由于本人又是个Seoer加强迫症患者,所以对网站的加载速度要求比较高。之前一直没有注意网站的加载速度一个是自己网速还算快,另一个是可能技术水平还不够,没有关注到这里。偶然的机会,我用Google的Page Speed测试了一下网站,发现评分比较低,主要原因都是JS和图片的问题。图片优化我们这里先不说,主要讲讲怎们加载JS。网站加载速度慢,主要原因是我网站的head有个jQuery库需要加载,当这个jQuery没有下载并执行完的时候,页面下面的内容将会停止渲染。那么我首先想到了利用浏览器的标签进行异步加载,在script标签里头使用defer和async=”true”来异步加载jquery,这时候发现jQuery是异步加载了,但是又出现了另外一个问题,就是我下面有依赖jQuery写的脚本,当jQuery异步加载,这些被执行了,就是提交找不到”$”,那么我又想到了把这些jQuery写的脚本也进行异步加载,但是仔细一想,这样也不行,因为虽然都是异步加载,但是到底谁先加载上,这个是不可控的。由于水平有限,再加又亟待解决这个问题,所以我最终的办法就是把jQuery库和脚本都写到网页尾部,这样虽然有点挫,但也不失为黔驴技穷的一种解决方案。
…阅读更多>>
在学习jQuery的时候,我们经常会看到“工厂函数”这个概念,那么究竟什么是“工厂函数”呢?我们来看看概念,“所谓工厂函数,就是指这些内建函数都是类对象,当你调用他们时,实际上是创建了一个类实例”。意思就是当我调用这个函数,实际上是先利用类创建了一个对象,然后返回这个对象。由于Javascript本身不是严格的面向对象的语言(不包含类),实际上来说,Javascript并没有严格的“工厂函数”,但是在Javascript中,我们能利用函数模拟类。来看下面一个例子:
…阅读更多>>
最近在一个询盘留言管理系统时候一个问题,留言的前台的表单当中出现很多name值相同的input框,这些框是由用户填写的各不相同的值,现在要迁移到php平台上,而且要求不能改变前台的任何表单(因为用到这个表单的网站实在是太多了,所以必须要考虑转移的兼容性,就连form的提交地址也不能变,必须是提交到某个asp页面上)。form提交地址问题,可以用伪静态或其它方法直接解决。由于以前的系统是由asp做的,asp在处理相同name值的表单的时候,是直接用逗号把前台提交的值连起来,而php却不一样,它接收相同的name的input的时候,是最后一个把前面的值给覆盖掉了。那么,怎么样在不改写前台的基础上,做到能接受到所有name相同的input的值呢?当时脑子里浮现两个想法,第一个是让这个input的name以数组的方式传到后台,然后作出处理,但是很快被否定掉了,因为这样也必须要改动前台的代码,让
<input type="text" name="a" />
改成<input type="text" name="a[]" />
。第二个想法是php配置当中,有没有类似的设置可以让php像asp这样处理相同name值的表单,查了半天资料,也没有找到。
…阅读更多>>