使用windows7的virtual PC打造原装IE6、IE7、IE8测试环境

公司使用的是windows7操作系统,自己之前一直使用IETester来测试页面在IE6~IE8下的兼容性,可是在测试js的时候还是会出现实际使用的还是windows7的IE8内核问题。
所以自己想通过virtual PC来搭建个虚拟的测试环境,为什么选择virtual PC呢?
1、windows 7系统自带,并且xp mode就可以直接安装上xp系统
2、windows 7支持自动发布功能,即不启动虚拟机的情况也可以在xp下运行相应的程序,节省内存开销

安装虚拟机

第一步是安装xp MODE,这个网上很多教程,很简单我们就安装了带有IE6的xp系统了,并且可以把IE6发布到windows7上去运行
第二步是创建第二个虚拟机,也就是带IE7的xp虚拟机,我先找了个sp2的xp安装上了(可以在设置里面添加ISO),可是不支持自动发布,当我查看帮助文件的时候发现原来只用sp3以上的系统才支持自动发布,于是先升级sp3,。
升级sp3的时候悲剧了,因为一开始设置的虚拟硬盘大小是3G,导致sp3升级包升级的时候显示磁盘不足,试了很多扩展虚拟硬盘的方法都是不行,只有重新删除硬盘再次创建一个大点的硬盘,这次我创建的虚拟硬盘大小是5G,安装sp2,然后安装sp3,之后就是安装集成系统。
一切就绪了,可是还是不支持自动发布功能,后来在帮助里面发现了原来sp3还是要安装一个补丁的,即(Windows® XP SP3 用于启用 RemoteApp™ 的更新
安装补丁之后终于可以了!
下面是截图:

使用windows7的virtual PC打造原装IE6、IE7、IE8环境

提高网站访问速度的十个技巧

网站的访问速度和性能对用户体验来说是非常重要的。如果你的网站访问非常的慢,你不仅会失去用户,而且更可怕的是你会失去潜在的客户。像Google这样的互联网巨头也会把网站访问速度作为排名的一个参数。因此当你需要优化网站速度时,你需要考虑方方面面,每个毫秒。这里对改进网站性能提出一些基础和普遍的建议。

1、如果可能的话,延迟加载一些内容

可以使用Ajax来按需加载部分内容。比如一个相册,可以在用户浏览页面时先出缩略图,当用户点击了,然后异步请求原图并展示,这样用户如果只需要看几张图片,就不需要等待所有图片都加载下来。这种开发模式叫做延迟加载。
Ajax/Web开发类库如jQuery,Prototype,与及MooTools可以使得延迟加载更容易实现。

2、使用外部JS和CSS文件

当用户第一次加载网页时,浏览器会缓存住外部的CSS和JavaScript文件,所以将javascript和CSS放到外部文件比内联的会好。
使用内联CSS还会增加网页的渲染时间,让所有样式都定义在你的主CSS文件中使得浏览器渲染页面时少做一些工作,因为它一开始就知道所有需要应用的样式规则。另外使用外部javascript和css文件也有助于维护代码。

3、使用缓存系统

如果你发现网站总是连接数据库来查询产生出同样的结果,可能就需要使用缓存系统了。使用缓存的话,只需要生成一次特定的内容而不需要用户每次访问的时候都去生成。缓存系统也会根据配置周期性的刷新缓存。你可以生成静态HTML页,以减小服务器脚本执行的开消,或者使用数据库和服务端脚本缓存系统,比如PHP的加速器,memcached等。

4、避免在html中改变图片大小

如果一张图片原本是1280900px的,但是你需要它显示为400280px的,你应该用图片编辑器,如Photoshop来改变它的大小,而不是使用HTML的width和height属性。

使用mysqldump、into outfile和load data进行数据库导入导出备份

遇到了大批量导入导出数据的时候真的比较麻烦,动则几G的数据,操作起来也是比较慢的,而且如果稍有不慎,还要重写处理,最简单的方法也是效率最低的方法就是使用PHP写导入导出数据程序,用Shell来跑PHP,可是大家一直忽略了mysqldump和mysql的into outfileload data,如果这几个命令使用灵活了,对于数据库导入导出以及备份是很方便的。下面简单讲解一下,高手飘过,因为对于数据库操作我也是小白。

使用mysqldump 和 source导入导出备份数据

如果要导出整个数据库 或者某一个数据库的一个表,并且保持数据库中表的名字不变,再次导入到另外一个数据库的时候,可以使用mysqldump和source的方法。mysqldump的具体使用参数可以使用mysqldump --help来查看,这里我简单说下我常用的几种参数。

1、mysqldump导出整个表的数据,包括建表信息,这也是最基础的用法

mysqldump -uusername -ppassword databasename tablename > /home/db/db_bak2012

其中-u -p 和mysql的参数是一样的,分别代表了用户名和密码,后面跟着是数据库名和表明,>之后的是要导出的路径。

上面的导出数据要导入数据库的时候可以进入mysql,然后使用下面的命令来实现

source /home/db/db_bak2012

使用mysql筛选出某字段中文的记录

项目中遇到了一个数据处理的问题,简单的描述一下:字段name中有英文的也有中文的,数据比较庞大,如果使用php处理整个表都要捣鼓一遍,不是很“低碳”。

后来想到了使用mysql的正则,于是上网查了一下,找到了以下的方法:


select * from table where not name regexp '^[1-9A-Za-z]';

这样就可以筛选出来name字段中全部为中文的记录了。
记录一下

IE中flash遮挡div现象的解决方案

今天开始给网站首页的广告管理系统添加flash广告代码,结果出现IE中(包括IE6+)弹窗广告要flash遮挡的问题,后来想到了常用的iframe方法(参见《解决IE6 select z-index无效,遮挡div的bug》),最终成功了flash遮挡DIV的bug,但是在IE中还出现了浮动的DIV变化位置后,flash出现div碎片的拖尾现象。继续寻找解决方案。最后终于找了原来flash有个参数wmode可以设置,于是代码变成了这样:

<embed src=”s.swf” quality=”high” wmode=”Opaque” width=”150” height=”240”></embed>
于是IE中Flash遮挡DIV的问题成功解决了,看图:

flash遮挡div问题的解决方案

断桥残雪部落格最新的订阅地址

关于wBox iFrame回调关闭问题的解决方案

最近很多使用我的jQuery弹出框插件wBox的人问我,关于wBox的关闭问题,例如一个页面中使用wBox iframe进来一个页面,而这个页面是进行用户登录,登录成功就关闭wBox,其实实现回调关闭wBox的方法很简单,就是使用iframe的DOM操作即可,例如我们的代码这样写:


//wbox赋值出来,然后使用wbox对象的close的方法关闭
var wbox=$("#iframe").wBox({
       requestType: "iframe",
    target:"b.html"
   });

那么我们在页面b.html中进行了用户登录验证,我们验证成功,要关闭wBox,就可以在b.html中使用parent.wbox.close()来进行关闭,就像下面的代码,只要我们验证完毕运行closewBox就可以关闭了iframe:

function closewBox(){
    parent.wbox.close()
}

关于iframe子页面与父页面之间的DOM操作可以参考下面的文章:《使用JavaScript在IE和Firefox下进行iframe的DOM操作

前端开发常见图片格式详解

前端开发设计,打交道最多的就是图片啦~今天就来个图片格式讲解,也许一些围绕你的问题可以在这篇文章中找到答案

Gif格式图片的特点

透明性

Gif是一种布尔透明类型,既它可以是全透明,也可以是全不透明,但是它并没有半透明(alpha 透明)。

动画

Gif这种格式支持动画。

无损耗性

Gif是一种无损耗的图像格式,这也意味着你可以对gif图片做任何操作也不会使 得图像质量产生损耗。

水平扫描

Gif是使用了一种叫作LZW的算法进行压缩的,当压缩gif的过程中,像素是由上到下水平压缩的,这也意味着同等条件下,横向的gif图片比竖向的gif图片更加小。例如50010的图片比10500的图片更加小

间隔渐进显示

Gif支持可选择性的间隔渐进显示

由以上特点看出只有256种颜色的gif图片不适合照片,但它适合对颜色要求不高的图形(比如说图标,图表等),它并不是最优的选择,我们会在后面中看到png是最优的选择。

Img,Script,Link等标签为空可导致页面多余请求

把页面中的img,script,link等标签为空链可以导致页面多余请求的问题,包括IE,Firefox,chrome,Safari!但是相对于img,script跟link的src、href为空时,在IE下不做请求,而Chrome, Safari, 和 Firefox则会出现一次多余的新请求。下面详细讲解一下:

img src为空的情况分析

无论是在html中写入&lt;img src='' /&gt;还是在js中通过Image对象建立var img = new Image(); img.src = "";,都会导致向你的服务器多做一次请求。而具体请求的情况分析如下:

  1. 在IE中,这样做会请求一次当前页面所在的目录。如在http://js8.in/demo/a.html 中出现这种空src的标签,会导致重新请求一次:http://js8.in/demo/
  2. 在Safari 和 Chrome中,将请求当前页面本身。
  3. 在Firefox 3.5以前的版本中,有和Safari同样的问题,但是在3.5中修正了这个BUG。
  4. 在Opera 中,不会做额外的请求。

jQuery插件wBox准备更新

随着断桥残雪写的jQuery插件wBox的用户越来越多,越来越多的人提出了wbox的需求,可是我最近比较忙,没有时间改写wBox,正好公司的一个新项目要采用wBox,提出了很多要求,我准备在接下来的一些时间中更新下wBox,并且解决IE6下的一些布局上的bug、添加一些新的功能,大家敬请期待吧~
嘻嘻~

wBox粗糙的主页

Ubuntu安装Samba实现跟windows文件共享

为了开发项目的方便,要实现Ubuntu跟windows文件共享,需要在Ubuntu下搭建samba服务器,下面来说说Ubuntu下安装、配置Samba的详细步骤~

Ubuntu下安装Samba

可以使用新立得来搜索Samba安装~没有请更新软件源,或者使用如下命令来安装Samba

sudo apt-get install samba
sudo apt-get install smbfs

建立Samba共享文件夹

假如要创建/home/用户名/share首先创建这个文件夹 (这个用户名就是你的用户名,为了方便易懂我才这样写的,到时记得自己改啊)
新建share文件夹,终端命令如下:

mkdir /home/用户名/share
设置该文件夹的权限使其让所有用户可读可写可运行,终端命令如下:
chmod 777 /home/用户名/share

配置Samba服务器

编辑smb.conf允许网络用户访问,终端代码如下:

sudo gedit /etc/samba/smb.conf
搜寻这一行文字代码“security = user”,修改为:
security = user
username map = /etc/samba/smbusers