前几天在帮别人改一个网站,要实现用Ajax去进行无刷新的点评功能。
忙活了半天,终于把功能做出来了。最后一步就是做最终测试了。测试的时候,发现了一个奇怪的问题:在FireFox下没有任何问题,在Maxthon或者IE6下,首次打开页面,一切正常,刷新一下就不执行任何操作了。其中关键的代码如下(加了我的调试代码):[code]FCKXml.prototype.request = function( url , postString , fmethod , asyncFunctionPointer , funcParam )
{
var C = this.getTransport();
C.open( fmethod , url , true );
if(fmethod==”post”)
C.setRequestHeader( 'Content-Type' , 'application/x-www-form-urlencoded' );
C.send( postString );
alert(“start loading”);//用来检测是否执行到了这一步,每次都有,说明有执行到这
C.onreadystatechange = function ()
{alert(C.readyState)//显示状态值,以便清楚地知道状态有没有改变,IE下刷新后没反应
if( C.readyState == 4 )
{
if(asyncFunctionPointer)
{
if ( C.status==200 || C.status==304 )
{
asyncFunctionPointer( C );
}
}
}
}
}[/code]
经过测试发现,原来是onreadystatechange状态无任何变化。但不知道是什么原因引起的。无奈之中跑到CSDN上提问,一个朋友的回答提醒了我,于是我去测试了下C.responseText发现刷新后是直接有值了。这下我恍然大悟,看来是缓存惹的祸,直接从缓存里读取数据,没有向服务器提交查询的过程,当然就不会有状态的改变了。为了验证我的想法,我把用来处理查询并返回值的页面做了禁止缓存处理。再一调试,一切正常。
问题是解决了,但不知道为什么在FF下不会直接读取缓存,难道FF已经针对Ajax做了处理?最近比较忙,此疑问待有时间后再来研究。也欢迎各位朋友提出看法。
月份:2008年7月
重回图书馆
很早就想办一张温州图书馆的读者证。由于各种原因,一拖再拖,拖到现在。
前几天和QQ上一朋友聊到图书馆,而且,现在住的地方离图书馆很近,于是,办证事件又提上了我的日常议程。
前天,去温图网站下载申请单,了解办证要求,填写好表单。今天早上一早就带着证件直奔图书馆。到了那,发现已经有几个人在排除办理办证年审等事项。一切顺利,半小时不到就拿到了我期盼已久的读者证。
拿到证后,看了下工作人员给的外借指南及一些规定,然后就去检索台查了下我想借的书,得知在四楼。上到四楼后,正好前面也有个人要进外借室,我就按他的做法,刷卡,拿代书牌。由于还要上班,只好匆匆选了本书。然后到前台办理外借手续,发现还有自助借书平台,第一次用这玩意,在扫描书时,不知道操作要点,半天没扫描好,后来在工作人员的指点下,终于完成了。
自从出校后,已经没去过图书馆了,今天重回图书馆,感觉真好。
以后我会继续发扬在学校里泡图书馆的精神,好好学习,天天向上。
CSS定位中Position的absolute及Relative等的研究
用Div+CSS进行网站布局时,做一些浮动层等特殊特殊效果时要考虑到定位问题。这就要用到Positoin属性等。
[b]Position[/b]属性有四个值: static、fixed、absolute和relative,后面两个在布局中的定位里是经常用到的,顾名思义,[b]absolute[/b]是指绝对定位,即将对象从文档流中拖出,使用left,right,top,bottom等属性进行绝对定位,而其层叠通过z-index属性定义。此时对象不具有边距,但仍有补白和边框。[b]ralative[/b]是指相对定位,就是依据left,right,top,bottom等属性在正常文档流中偏移位置。
但是,怎么个绝对法,又怎么个相对法呢?以前我一直没有仔细去研究它,到具体应用时有时会有点迷糊,我相信很多朋友也会有这样的问题。今天我特意测试了一下,得出了以下结论:
[b]1、当Position属性值为Relative时[/b]
[color=Red]对象原来占有的位置保留,其后面的对象按原来文档流仍然保持原来的位置[/color]
Top的值表示对象相对原位置向下偏移的距离
bottom的值表示对象相对原位置向上偏移的距离
两者同时存在时,只有Top起作用。
left的值表示对象相对原位置向右偏移的距离
right的值表示对象相对原位置向左偏移的距离
两者同时存在时,只有left起作用。
[b]2、当Position属性值为absolute时[/b]
[color=Red]对象从文档流中抽取出来,原占有的位置被后面的对象顶替上来[/color]
Top的值表示对象上边框与浏览器窗口顶部的距离
bottom的值表示对象下边框与浏览器窗口底部的距离
[color=Blue]两者同时存在时,只有Top起作用;如果两者都未指定,则其顶端将与原文档流位置一致,即垂直保持位置不变。[/color]
left的值表示对象左边框与浏览器窗口左边的距离
right的值表示对象右边框与浏览器窗口右边的距离
[color=Blue]两者同时存在时,只有left起作用;如果两者都未指定,则其左边将与原文档流位置一致,即水平保持位置不变。[/color]
[color=Red]在Position属性值为absolute的同时,如果有一级父对象(无论是父对象还是祖父对象,或者再高的辈分,一视同仁,^_^)的有Positoin属性时,则上述的相对浏览器窗口定位将会变成相对与其最近的一个定位的父对象定位,这对精确定位是很有帮助的。[/color]
更多有关CSS的说明请参考手册:http://www.biglee.cn/books/css/
辛苦了半天得出的结论,希望对大家有用。如果有疏忽之处,还请指正。
CSS中文手册外加树形折叠菜单
鉴于有时要用到CSS手册,为了方便随时随地可用,今天花了点时间整理了一下别人做好的,同时练练写JS脚本,用JS写了左侧导航的折叠与展开效果的树形菜单。
这是通用于UL与LI菜单的折叠与展开脚本,免去了给各对象编ID的麻烦。不过,为了达到展开一个节点,另一个已经展开节点同时关闭的效果,我就编了两个ID来初始化已经展开节点。
JS脚本代码如下:[code]
[/code]
页面代码如下:[code]
废话不多说,有兴趣的,看效果:[url=http://www.biglee.cn/books/css/]http://www.biglee.cn/books/css/[/url]
最后声明:此手册版权归苏沈小雨所有。
用老电脑和老U盘Diy硬件防火墙
普通用户能有这样的设备吗?其实,只需要一张U盘或光盘,一台淘汰的旧电脑就可以了。硬件要求非常低,古董级的486都可以,只要有CPU、显卡、内存、2张网卡就足够了,什么声卡、显示器、硬盘之类的都不需要!
至于安装在硬件设备上的防火墙软件,可以使用一个叫做m0n0wall的软件。
cd c:m0n0
physdiskwrite.exe-u net48xx-1.3b11.img
LAN——Inc0
WAN——lnc1
具体的配置
|
用写好的DOM或硬盘启动之后,屏幕上会显示如下图: |
按数据键“1”,出现下图: |
这里是设置VLAN的,我们不需要,所以就按“n”出现下图: |
这是设置用于内网的网卡,这儿根据图上黄框圈出的2个名字里选择一个作为内网,我这里选择的是lnc0
|
写好lnc0之后,按回车,出现如下图: |
这是选择外网网卡,这里我输入另外一块网卡lnc1,之后按回车。出现如下图: |
这里是设置Optional口的,我们没有,所以直接回车结束。出现如下图: |
它询问我们是否继续进行,我们选“y”回车之后,系统会马上自动重新启动,等它启动之后,出现如下的画面: |
如果黄色框里的LAN和WAN的名字都是刚才我们设置好的名字,那就说明已经成功了!这时候,我们就可以通过客户端用WEB浏览器进行配置了。 |
在Windows中的配置
|
我们现在需要把WINDOWS的客户机的IP设置为192.168.1.X,这里的X可以是从2开始到254;子网掩码:255.255.255.0,网关为:192.168.1.1;DNS服务器可以设置为你当地ISP的DNS服务器地址,我是苏州电信的用户,所以我设置的2个DNS服务器是:61.177.7.1备用DNS为:221.228.255.1,设置如下图: |