存档

‘编程’ 分类的存档

下午和晚上对term一顿改啊

2006年10月4日

每篇文章后有全文链接后,被大家抱怨需要多按键从帖中跳出来,而onelittlefox回家了,于是下午亲自改动term的代码。
相关的内容好乱啊,很难看懂的说,慢慢摸索着改的。
开始找到相关代码的位置时以为问题挺简单,不过慢慢发现其实比想像的复杂。而且第一次改好后,留下了bug1:某些文章在普通模式下翻到尾处后不会停住而是直接跳到下一篇了;这个bug改掉后又出现bug2:在一帖最始处,往上翻,屏幕上会只显示当前帖的全文链接,现在也改掉了。因此今天一共重新make了三次bbsd,汗啊…

现在还可预见的bug是:设屏幕上显示n行正文,如果某帖的行数是k*n(k为整数),那么如果一直用pagedown向下翻的时候,第(k-1)*n+1的那行会由于全文链接的显示被挤掉,不过这个情况不好出现,先放着吧。

我感觉这些事情的根本解决方法就是显示帖子前生成一个临时文件,此文件里不光有正文,还有末尾的全文链接,还有那一条蓝的提示等内容,这不光能解决全文链接目前遇到的问题,还能解决帖子看到最后就不能往回翻的问题。

编程

记录一下诡异的ID被误杀事件

2006年8月12日

今天和onelittlefox在机房,其间聊到wenhou这么水,可以去学工组了,于是我下意识地u了一下GCHEM,竟然发现没这个号!
查了一下.PASSWDS,发现这个号确实是没了,而且是全成0了,只剩最后的4个FF

看了一下老的.PASSWDS,GCHEM前面的号是SSPKU,这个ID在7月13号自杀了,昨天刚好到期。于是我们觉得是在杀SSPKU时把GCHEM的记录也给抹了。于是在代码里找,缺也发现不了啥问题。后来开始考虑,会不会这俩ID不是一块没的,只是巧合比较近而已。于是开始逐个对照6小时一次的passwds备份,结果竟然发现是GCHEM先消失的,SSPKU后消失的!再进一步的观察,usies记录里有两个SSPKU被杀的记录。于是大概猜出了问题的所在:

自动杀ID时,到SSPKU时可能由于位移错误,把它后面的GCHEM的记录给清0了,所以GCHEM先死的,再到7小时后另一轮杀ID时SSPKU还在那,所以会再杀一次。
验证了一下,把八月的usies中KILL的记录都给提取了出来,找到了几个被杀两次的ID,其中一个是missphebee,它在较早的passwds可以看到排在GoldenTrue前,而现在这个GoldenTrue果然也没了。

不过现在看杀人的这部分代码仍然没有明显的问题,也无法解释为什么GCHEM和GoldenTrue的记录后面都有4个0xFF(不知道是光这4个0xFF没被盖还是有更多字节,因为前面是0,看不出来),只是多加了点代码加强安全性
1.如果.PASSWDS没被lock住,记错并不再杀
2.如果lseek的相对位置的结果与绝对位置的理论值不同,记错并不再杀

编程

什么是Ajax

2006年6月13日

基本引用于此:Ajax简介

术语Ajax用来描述一组技术,它使浏览器可以为用户提供更为自然的浏览体验。在Ajax之前,Web站点强制用户进入提交/等待/重新显示范例,用户的动作总是与服务器的“思考时间”同步。Ajax提供与服务器异步通信的能力,从而使用户从请求/响应的循环中解脱出来。借助于Ajax,可以在用户单击按钮时,使用JavaScript和DHTML立即更新UI,并向服务器发出异步请求,以执行更新或查询数据库。当请求返回时,就可以使用JavaScript和CSS来相应地更新UI,而不是刷新整个页面。最重要的是,用户甚至不知道浏览器正在与服务器通信:Web站点看起来是即时响应的。

Ajax不是一种技术。实际上,它由几种蓬勃发展的技术以新的强大方式组合而成。Ajax包含:

  • 基于XHTMLCSS标准的表示;
  • 使用Document Object Model进行动态显示和交互;
  • 使用XMLHttpRequest与服务器进行异步通信;
  • 使用JavaScript绑定一切。

Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。

  在创建Web站点时,在客户端执行屏幕更新为用户提供了很大的灵活性。下面是使用Ajax可以完成的功能:

  • 动态更新购物车的物品总数,无需用户单击Update并等待服务器重新发送整个页面。
  • 提升站点的性能,这是通过减少从服务器下载的数据量而实现的。例如,在Amazon的购物车页面,当更新篮子中的一项物品的数量时,会重新载入整个页面,这必须下载32K的数据。如果使用Ajax计算新的总量,服务器只会返回新的总量值,因此所需的带宽仅为原来的百分之一。
  • 消除了每次用户输入时的页面刷新。例如,在Ajax中,如果用户在分页列表上单击Next,则服务器数据只刷新列表而不是整个页面。
  • 直接编辑表格数据,而不是要求用户导航到新的页面来编辑数据。对于Ajax,当用户单击Edit时,可以将静态表格刷新为内容可编辑的表格。用户单击Done之后,就可以发出一个Ajax请求来更新服务器,并刷新表格,使其包含静态、只读的数据。

编程

Ajax

2006年6月13日

下午去海图看书,从一楼到三楼,发现很多Ajax的书冒出来,而且都在显眼的位置上

大概是个Web2.0的概念,是很多技术的组合。怎么会突然冒出这么多啊,看来Web2.0势头很强劲啊,不过我还是不懂它是个啥,太虚了,太概念化,基本要靠sina什么的炒作吧。

编程