存档

‘Web开发’ 分类的存档

Cybery知道 项目开发心得

2007年1月29日 没有评论
  1. 自顶向下的设计更有利于开发, 它可使编程思路更加清晰, 代码更富于条理, 程序更易于修改.
  2. 大部分程序主要有两个分支, 一是正常的程序执行, 二是错误的处理. 可以使用一定的方式(我使用了数组)保存错误信息, 然后在一个代码段中集中处理这些错误, 这样代码更清晰, 也易于管理和修改代码.
  3. 制定详细的项目计划是十分必要的.
  4. 为了提升某些操作的性能, 可以牺牲一些其它操作的性能, 比如在本项目的短信息系统中, 在发送信息的时候查找数据库, 牺牲了部分性能, 但提升了显示信息操作的性能, 而显示信息这个操作显然更需要好的性能.
  5. 数据库设计中应尽量避免冗余, 将类似信息放入同一表中.如本项目中的问题与回答放在一个表posts中.
  6. 使用模板技术, 实现PHP与HTML分离, 在PHP中只实现程序的功能逻辑, 而文档结构完全由模板去做. 把HTML写入到PHP代码中是不好的习惯,这样做会使得维护起来十分不便.
  7. 做一个程序时一定要考虑到用户的安装,卸载等一次性操作, 同时也要考虑到备份等日常操作, 还要考虑功能的易用性, 如果用户一定要切换三四次页面才能达成目的的话, 那么程序就有很大问题了.
  8. 理论果真是指导实践啊! 看了系统设计的理论后, 感觉豁然开朗, “自顶向下, 逐步细化”, 短短的八个字, 效果却极为显著. 一定得多学一些理论, 来指导实践.
  9. 阅读代码很有用, 借鉴学习很必要. (在本项目中: commen.php是跟Discuz!学的, 分类表中的parent_id是从wordpress中学的, 帖子与回复同表是从Discuz!中学的……) 创造始于模仿, 一点都不假.
  10. 个人认为先完成数据库的写入操作再完成输出操作比较科学.
  11. 如果相同的代码出现了两次以上, 就把它写成函数. 如果两段代码有相似的功能, 应该写成一个函数或者写成两个适配器加一个功能函数.
  12. 人是逼出来的, 这句话无论从生理上还是心理上都是正确的. 得自己逼自己, 刚才我还在犯困, 现在已经精神起来了.
分类: Web开发, 网站建设 标签:

Ajax初步

2006年12月21日 没有评论

Genra: Ajax学习手记
Resource: Foundation of Ajax (Ajax基础教程)

Ajax 做为一种新兴的网站开发技术, 近来十分火热. 我最近也正在学习这项技术.做为学习的积累.我写下这个系列文章.

第一篇主要写以下几个问题:
1. 为什么使用Ajax?
2. 什么场合下使用Ajax?
3. Ajax技术包括哪些组成部分?
4. 使用XMLHttpRequest对象.

1.为什么使用Ajax?
原因有二:
一. Ajax是一种客户端方法, 它可以与任何服务器端技术进行交互, 因此, 开发者可以不必关心具体的服务器端技术, 而开发出具有高移植性的WEB应用程序.
二. Ajax可以实现客户端与服务器间的异步通信, 从而可以免去用户等待服务器响应和刷新整个页面的苦恼. 换句话说, Ajax可以在不刷新页面和不停止响应用户输入的前提下实现与服务器的交互.

上述的第一点让WEB程序开发人员有更好的体验,而第二点让WEB程序的用户有更好的体验。所以,我们要使用Ajax技术。

2、在什么场合使用Ajax?
可以说几乎每个Web应用都可以使用Ajax而从中获益,不过还是有一些场合最适合使用Ajax.
a.需要处理复杂的验证时;
b.用户需要更好的体验时;
c.希望在与服务器通信时不停止响应用户输入时;
d.只希望改变页面的一小部分,而不是刷新整个页面时。

*注意:尽管Ajax有着很广泛的应用,而且它也能给我们带来更好的体验,但是有的时候还是不能使用它。下面列出了其中的几种情形:
a.由于一些老版本的浏览器并不支持做为Ajax应用基础的XMLHttpRequest对象,因此,当你的主要用户群在使用这样的浏览器时,使用Ajax进行Web开发是不明智的;
b.传统的Web应用让用户养成了这样的习惯,他们习惯于使用浏览器的“后退”按钮来返回他们刚访问的页面。但是Ajax应用使用的是异步通信的方式,不刷新页面,从而也不改变浏览器的栈,这样,如果用户想用“后退”按钮来返回上一个状态时,就会发生想不到的事情,因此,如果这种情况经常发生,请不要使用Ajax技术。

3、Ajax技术包括哪些组成部分?
Ajax包括四个部分,他们是:

  • Javascript: Ajax应用程序是使用Javascript编写的。它为Ajax应用提供逻辑。
  • CSS: CSS为Ajax应用提供表现。
  • DOM: DOM为Ajax提供一种可访问的文档结构,从而使脚本可以在运行时改变用户界面。
  • XMLHttpRequest: XMLHttpRequest对象允许Web应用与服务器进行异步通信。

Javascript是Ajax应用的核心,而XMLHttpRequest则是实现Ajax异步特点的关键。

4、使用XMLHttpRequest对象
Ajax技术并不是一种新的技术,甚至于不能说它是一种技术。它其实是基于XMLHttpRequest对象的一种应用技巧。而XMLHttpRequest对象早在IE5.0的时候就已经被支持了。只是那时只有IE支持它,所以没能得到普遍的应用。而现在不同了。大多数浏览器都对XMLHttpRequest对象做了相似的实现,虽然还没有一个统一的标准,但是进行可移植的Ajax应用开发已经成为了可能。

下面简单介绍一下XMLHttpRequest对象的应用。首先说一说如何实例化一个XMLHttpRequest对象。
由于IE把XMLHttpRequest实现为一个ActiveX对象,而其它的浏览器则把它实现为一个本地Javascript对象,因此,在实例化一个XMLHttpRequest 对象时要进行一下必要的判断。

var xmlHttp;

function createXHR(){
if(window.ActiveXObject){
xmlHttp = new ActiveXObject(“Microsoft.XMLHTTP”);
}else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}

这样就实例化了一个XMLHttpRequest对象。
下面简单介绍一下XMLHttpRequest对象的属性与方法:

//方法:
abort() //停止当前请求
getAllResponseHeader() //把HTTP请求的所有响应首部作为键/值对返回
GetResponseHeader(“header”) //返回指定首部的串值
open(“method”, “url”)  /*建立对服务器的调用。method参数可以是GET,POST或PUT。url参数可以是相对URL或绝对URL。此方法还有三个可选参数*/
send(content) //向服务器发送请求
setRequestHeader(“header”, “value”) //把指定首部设置为所提供的值。在此之前必须先调用open()

//属性:
onreadystatechange //事件处理器,每个状态改变时都会触发这个事件处理器。一般为一个Javascript函数
readyState //请求的状态。0:未初始化,1:正在加载,2:已加载,3:交互中,4:完成。
responseText   //服务器的响应,一个字符串
responseXML //服务器的响应,表示为XML。这个对象可以解析为一个DOM对象。
status    //服务器的HTTP状态码
statusText //服务器的HTTP 状态码对应的文本提示

一个交互实例:
一个Ajax交互的步骤主要如下:
1、客户端事件触发一个Ajax事件;
2、创建XMLHttpRequest对象的一个实例;
3、向服务器发送请求;
4、服务器处理请求并传回数据;
5、XMLHttpRequest调用onreadystatechange事件处理器响应状态变化。

开始我们的例子:

var xmlHttp;

function validateEmail(){
var email = document.getElementById(“email”);
var url = “validate?email=”+escape(email.value);
createXHR(); //这里使用了我们刚才定义过的函数
xmlHttp.open(“GET”, url); //通过GET方法,打开与服务器的链接
xmlHttp.onreadystatechange = callback; //当状态发生改变时,调用callback函数来处理
xmlHttp.send(null); //向服务器发送请求
}

function callback(){
//do something that you want. eg.
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
alert(“OK, the query has been sent to the server”); //当xmlHttp对象的readyState为4即”完成”时,同时服务器返回200即成功时,显示一个提示信息。
}
}
}

这就是使用XMLHttpRequest对象与服务器交互的基本方法了。当然,这是一个极简单的例子,不过,了解了其工作原理后,你就可以使用Javascript创建更加丰富,功能更加强大的Ajax 应用了。

本系列文章会继续探讨关于Ajax的话题。请关注。

分类: Web开发 标签:

什么是网站建设

2006年12月6日 没有评论

  网站建设,是一门艺术与技术综合的学问。一般人们都很容易把它与“做网页”等同起来。这样认为是不合适的。因为网页制作只是网站建设的一个部分。而除些之外,网站建设还包括服务器配置、网站架构规划、站点功能设计、网站美工制作、网站宣传与推广等等内容。因此,要建设一个网站,要了解的知识是多方面的。

  一般说来,网站建设过程中最容易和最直观的部分就是网页制作了,这也是为什么很多人容易把这两个概念混淆的原因。现在关于网页制作的书籍和文章很多,很多朋友也都对这方面的知识比较了解。我就不做过多的解释了。现在说说其它的方面。

  关于服务器的配置

  服务器的配置是一项专业性很强的工作,要想架设一个“可以用”的服务器是相当简单的,可是要想配置一个安全、稳定、高效的服务器却是十分困难的。就个人应用而言,如个人主页、Blog等,使用的多是主机服务商提供的主机服务,因此一般不必关心服务器的配置问题。但对于有特殊需要的用户(主要是企业或团体),为了提供更加高效的服务、保证信息的安全,有必要使用自己的主机,这时,服务器的配置就变得犹为重要。

  关于网站功能设计

  一个网站,最重要的是它所提供的功能,而不是它的界面,这是一个最基本的常识,但是却常被人们所忽视。很多人总是刻意的追求网站界面的花哨,却忘了真正能够留住访问者的是网站本身提供给他们的便利,而不是花哨的界面。举个例子来说,一个提供旅店信息的网站,如果它不能够提供及时、权威的信息,那么它的界面再吸引人,也不会有人愿意在这样的网站停留。因为它不能提供访客需要的信息。
  当然,这并不是说界面不重要,只是不如网站的功能重要。因此,在你建设网站的时候,一定要想好,你的网站的功能是什么?你的网站凭什么吸引人?访问者能在你的网站得到什么?只有考虑好了这些问题,才能谈界面的设计,否则,没有一个网站功能定位,一切的花哨界面都没有任何意义。

  关于网站架构规划

  这是网站建设中比较重要的一个方面。它指的是规划网站的结构,使得用户在访问网站的时候能够快速高效的找到自己需要的信息。评判一个网站架构科学性的依据很简单,如果访问者不能在三次点击中找到他需要的信息,那么这个网站的架构就不是科学的。因为如果用户点击了三次还没有找到自己想要的信息,那么他很可能没有耐心再点击下去了。那么,如何设计网站的架构呢?
  一般说来,可以把网站的页面分成三个等级,第一级就是主页,提供关于整个网站的信息和简介;第二级是具体的分类,提供某一类信息的整合与简介;第三级是内容页,提供某一具体问题的信息。一般这种三级设计对大多数网站来说是可行的。当然也有比这种方案更“深”一些的,如四级的,还更“浅”一些的,如两级的,不过都是特殊的情况,不是很常用。因为如果网站太“深”,用户需要点击多次才能进入到内容页面,而网站太“浅”的话,一个页面上的链接(内容)就会太多,用户不容易找到自己需要的信息。
  那么,光只是设计好网站的“深度”就行了吗?不是的。因为如果用户对你的网站的了解不多的话,他很可能不能通过你提供的架构很快的找到自己需要的信息,这时,网站的搜索功能就很有必要了。用户只要输入他关心的关键词,然后就可以找到与此相关的内容的列表。相当于只点击了两次。

  结语

  今天先说这些吧。有说的不对和不完全的地方请朋友们多多指教。

分类: Web开发, 网站建设 标签:

Page optimized by WP Minify WordPress Plugin