工作任务
- ajax提交表单
- ajax到底是干什么的
- 为什么我们不用ajax代替完整的页面更新
- 做一个自己的网站
工作心得
1.
2.可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
直白地说,就是没用AJAX的网页,你点一个按钮就要刷新一下页面,尽管新页面上只有一行字和当前页面不一样,但你还是要无聊地等待页面刷新。
用了AJAX之后,你点击,然后页面上的一行字就变化了,页面本身不用刷。
AJAX只是一种技术,不是某种具体的东西。不同的浏览器有自己实现AJAX的组件。
=====================================
突然想让这个答案更加完美,所以补充一下下面的内容:
ajax的全称是AsynchronousJavascript+XML。
异步传输+js+xml。
所谓异步,在这里简单地解释就是:向服务器发送请求的时候,我们不必等待结果,而是可以同时做其他的事情,等到有了结果我们可以再来处理这个事。(当然,在其他语境下这个解释可能就不对了)
这个很重要,如果不是这样的话,我们点完按钮,页面就会死在那里,其他的数据请求不会往下走了。这样比等待刷新似乎更加讨厌。
(虽然提供异步通讯功能的组件默认情况下都是异步的,但它们也提供了同步选项,如果你好奇把那个选项改为false的话,你的页面就会死在那里)
xml只是一种数据格式,在这件事里并不重要,我们在更新一行字的时候理论上说不需要这个格式,但如果我们更新很多内容,那么格式化的数据可以使我们有条理地去实现更新。
现在大部分人其实是用JSON这种格式来代替XML的,因为前者更加简洁,据说目前的解析速度也更快。多快好省,能省则省啊。
总结:只要是JS调用异步通讯组件并使用格式化的数据来更新web页面上的内容或操作过程,那么我们用的方法就可算是AJAX。
感觉就是点击一个button或者触发了某些事件,建立xmlhttprequest对象,向服务器发送请求,根据状态码判断是否已经完成,接受response。
栗子就比如知乎上面的点赞,点一下赞,页面并没有刷新,但是赞的数量增加了,在浏览器后台有和服务器
异步:发送请求后并不需要等待反应回来才可以继续操作。利用ajax可以发送请求然后继续进行操作,完全没有影响
3.Ajax技术其实是一种hack手段,用javascript来模拟一个浏览器的工作行为。
如果你愿意,你确实可以用Ajax来完成网站所有页面之间的跳转,实际上在部分特殊效果的需求驱动下,有些网站确实是这么做的。
但是你这么做实际上就是,把浏览器的工作重新实现了一遍。嗯我觉得可以算是“重新发明轮子”吧,甚至是“重新发明橡胶钢材以及内胎外胎以及把这些东西组成轮胎的技术”。
1. 理论上Ajax可以取代传统的页面跳转,但是这种取代毫无意义。因为Ajax本身的意义是局部数据的请求,通过Ajax可以在不更新整体页面的前提下,更新部分页面的数据,这样一来可以降低服务器的压力,并且缩短用户的等待时间(毕竟浏览器不用重新渲染页面)。如果你把这个技术用来做整体的页面跳转,那和用现在的页面跳转有什么区别?
2. 也许你的意思是,以后不再用页面跳转,全部都改成Ajax的局部数据更新。嗯,听起来挺不错,算是很新的想法。但是仔细推敲一下,现在的局部相对于整个页面,和现在的页面相对于网站,关系不是一样的么。类似于你看书对吧,有时候你需要一页一页看,有时候需要一章一章的翻阅不是。而且如果全部都用局部更新的手段,对于网站来说,传统的内容组织方式也需要做相应的变更。这需要更多的技术成本,来使网站的内容布局适应all-Ajax的方式。对于移动端也许还好说,对于大屏幕设备下的web页面来说,有点蛋疼。
3. 取消传统的页面跳转,也就意味着没有了传统的页面。这对于用户的使用习惯也是个挑战。最简单的例子,你没办法再使用书签管理功能了,也不存在前进后退了。对很多用户来说这都是不可容忍的。
4. 一项技术问世总是带着使命的,我觉得最好先了解一下它使为了解决什么问题被发明的,然后看一下这个问题和你要解决的问题之间的关系,大概就知道这个技术能不能用了。就题主的问题来说,Ajax是为了解决局部数据更新问题,而你的问题是整体数据更新。刚好是相对的,不是么。
而且对seo也不好
4. 服务器集群设置,数据库,前端,app会放到不同的数据库上面,但是如果是少于10W量级,不会产生很大的影响,但是超过10w量级,那么速度会下降的非常快。
cdn,相当于托管,把自己的网站放到北京的服务器上,那么新加坡那边访问可能会很慢,而挂到cdn上之后,相当于把自己的网站发散到很多地方,具体要看cdn供应商,这样速度就会很快。