posts - 403, comments - 310, trackbacks - 0, articles - 7
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

小结下 Web应用课 Project 2

Posted on 2007-04-25 18:25 ZelluX 阅读(555) 评论(0)  编辑  收藏 所属分类: Web

尽管是两星期前完成的,不过还是养成好习惯,写下心得吧
1. 工具方面,Firebug真不错,大大提高了开发速度。IE的Developer Toolbar界面倒不错,不过好像稳定性不高,经常crash。
2. 在用js判断用户注册时,遇到验证成功后再次验证就会失败的问题。原因在于开启了正则表达式global选项,在第一次匹配后,检测指针会指向最后一个换行符,于是第二次检测就会失败。
3. CSS的级联特性很方便,只要把body的className属性改掉后,所有的级联子节点都会相应地改变样式,不像swing中需要一堆repaint()  -,-
4. 要通过js修改网页的某处文字,一开始我通过修改someNode.firstChild.nodeValue,后来发现有textContent和innerHTML属性。不过貌似前者在IE中会出现问题,而后者IE和Firefox下表现也不完全一样,需要小改动。
4. js中可以很方便的动态创建网页标签,好像是createElement(elementType)方法(Project2的代码手头没有,只能凭记忆了),然后设置下newNode的属性,再通过父节点的addChild方法加入就行了。注意newNode的parentNode是只读的。
5. js访问cookie也不难,从一本电子书上复制粘贴了getCookie和setCookie两个方法,可以很方便地对cookie进行操作。

EyesOnMe.txt
完成模块:
1. 用户登录与注销
   1) FF下需允许JavaScript修改状态栏
   2) FF下还有个小bug,举例说明:
      输入test@aaa.com,登录成功
      修改文本框中的字符,比如修改成test@aa.com,再次登录,提示登录失败,此时根据要求文本框内容清空
      再次输入test@aa.com,登录成功
      有点诡异,不过要防止这个bug只要在登录后把onsubmit功能取消掉就行了。IE6下没有这个问题。

2. 用户注册
3. 界面模块
4. 选做1:实现组件在页面内的自由拖放
5. 飞行游戏模块 及 选做2
  “增加星星”功能可以在运行时动态生成星星。

  1) 在实现多个星星的控制的时候我使用了一个spacestar数组,发现访问该数组成员时,不能使用for each循环
     如果使用
     for (star in spacestar) {...}
     这样star只会是一个字符串,并不是指向各元素的句柄。
     但是使用
     for (i = 0; i<spacestar.length; i++) {...}
     然后通过spacestar[i]来访问,可以得到各元素的句柄。
 
  2) 新创建的星星div会自动排在原来div的后面,因此在设置top属性的时候作了相关修正:
     starY = Math.round(Math.random() * 130) - i * 30;
     不过好像星星一多还是会有越界的现象发生,IE6下更为严重。
 
  3) 一开始发现IE6不支持飞行游戏模块,以为是IE6不支持createElement方法,后来才发现原来是某两个语句后面少打了分号,FF自动修复

了,IE6没修复,就无法执行了,如果浏览器脚本语言支持Python就好了 =_

6. 必做组件:便笺簿
   觉得做为桌面Widget还是便笺比较有用,使用了cookie保存便笺内容,并支持动态生成、创建便笺的功能。
   自认这个组件创意不咋的,不过技术含量还是挺高的 ^_^

7. 代码风格

思考:
1. 我觉得跨浏览器关键靠经验,刚开始学得每写一点代码就在不同浏览器中调试下,某些功能针对不同的浏览器使用不同的js方法。
   1) 在便笺簿模块中,生成新的<a>便签的时候,链接文字使用
      oNoteSetter.contentText = " 读取";
      在FF下正常,在IE6下无效;后来google了下,改用
      oNoteSetter.innerHTML="&nbsp;读取";
      后FF和IE6下均通过。

2. 做这个project之前,我也不知道JavaScript居然有那么强大的功能,翻了Professional JavaScript for Web Developers和Making Use of

Javascript才知道原来可以动态生成元素、修改cookie。CSS的级联特性也很不错,要是用Java的Swing组件估计要痛苦地repaint()了。


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问