网站开发,是一种叫做B/S的技术:浏览器/服务器模式!
所谓的浏览器服务器模式,就是系统分为两个部分,一个是浏览器,一个是服务器,程序逻辑和数据大都存储在服务器上,用户交互都在浏览器上,也就是说,你的“系统的使用”,是在浏览器里完成的:点击、选择、输入。数据的操作,基本上都在服务器上进行:变换、存储。所以,可以认为浏览器除了显示之外,它的主要功能是提要求的,我要数据减少出库,金额增加。我要数据按条件检索返回来浏览器显示...他们之间的这种来往,就叫提交和响应。
一次提交,就是客户端对服务器端的一次“提要求”,服务器端响应后,进行处理,并返回结果给客户端。美中不足的是,每一次的提交,都是一次完整性的礼尚往来。如同,旧时欧洲贵族吃饱喝足没事干把所有的礼仪进行的无所不用其极!我的意思是在说:标准的浏览器和服务器交互,是以一个标准HTML页面为单位的,哪怕你只是需要改变页面中的一个字,服务器返回给你的,也是整个HTML。
原因很简单,浏览器就是一个HTML解析器,服务器返回给它的,本就该是这种标准内容。另外一个原因就是,服务器和浏览器器并不是一直连接的,这就是打电话与写信的区别:打电话是一个实时的连接过称,你们直接对话,直接就问题细节进行讨论!对方的问题和回答你马上就能听到,也能马上进行反馈。
而浏览器和服务器的交互,更像是信件交流,每次,都要有信封、有地址、有称呼...,也就是说,它不是你一句我一句交互式的,它是你一封电报我一封电报的打包式的!
其实,服务器的响应,不是只有html(view)一种,它也可以返回一个数字,一串数据等单个的信息。只是这样的信息如果直接显示在浏览器里,就只有这一个数字(或一串数据)而已,没有输入,没有导航栏,没有按钮,因为,它不是一个html页面啊!
如果,浏览器能(相对于整个页面刷新)另外开启进程独立地提出数据请求,接受并用服务器返回的数据更新制定的标签内容,这样的页面刷新就经济实惠的多了。所以,这种局部刷新地技术需要两部分协调完成,服务器端:返回单纯的数据,而非整个页面,浏览器端:提出请求,接受数据并显示。
浏览器端是直接跟人打交道的,所以,为了更好的做到这一点,它们都支持一种本地脚本语言,比如,javascript,我们浏览器端的局部刷新的请求和完成,就是靠这种脚本语言来完成的,况且,要达到这些还需要很多技术上的支持,这就是一些框架存在的理由了,它们编写好了对这种机制的支持,我们只需要在需要的地方调用就行了,一般,JQuery用的比较多。也就是有了浏览器端的天然脚本语言Javascript和基于js所编制的框架JQuery,一切就简单了!
这就是Ajax (Asynchronous JavaScript and XML)