话说,昨天四级,额,红灯笼?我是这样翻译的: red light ball 。嗯,很合理,寥寥3个单词完美诠释了红灯笼的各个特性,颜色,物理特性,形状。堪称完美!我都服我自己了.....(鬼畜中)
不说了不说了。来讲讲ajax。额,虽然ajax已经存在了很久并且自己也一直再用,但是当中的一些细节自己还是没怎么去了解。
今天打算好好梳理一下,顺便讲讲如何写更好的ajax。
What is AJax
首先AJax并不是什么新技术,它只是XMLHttpRequest对象和JS,XML,CSS,DOM等许多技术的组合。Ajax干的最有意义的事就是跟服务器交互进行业务处理的时候不需要重新刷新页面。
Ajax的常用属性和方法
与其说是Ajax的常用属性和方法,倒不如说是XMLHttpRequest对象的常用方法和属性,其中有挺多都是平时使用的时候容易被忽略的。比如request.open("MethodType",...)这种经常使用的方法这里就不说明了。
Method:
setRequestHeader("","")
虽然设置请求头方法也比较常见,但是我最近才发现这个方法必须在open()方法之后才能调用生效。
abort()
该方法用于停止和放弃当前的异步请求。
getAllResponeHeaders()
获取以字符串形式返回的完整的HTTP头信息。
Property
readyState
status
Js中的异步
为了更好的理解JS异步编程和Ajax的实现原理,强烈建议回顾一下下面这篇东西。
https://mp.weixin.qq.com/s?__biz=MzU5NzAyMDg3NQ==&mid=2247486602&idx=1&sn=a0bccb384630941788f03c94c2745e26&chksm=fe58952ec92f1c38bc7216244c8a0a818cf8eacb29df7a38deb4ef2d2c1f756e255b20facc96&token=261055798&lang=zh_CN#rd
什么是“比较好”的Ajax
在着手写构造一个Ajax的时候,你应该有意的遵循下列几点:
1.非过度嵌套。
2.较好的可读性。
3.控制性好等。
一般封装
或者
更加完善的
在ajax请求的各个过程中可能都会产生错误,如果你希望你的代码更加严谨,能应付更加复杂的网络环境,你也可以监听它的各个过程的事件。
值得一提的是,如果你希望想你的用户展示,你现在的请求状态(直观的进度),特别是一些比较复杂和比较耗时的业务处理的时候,为了避免用户以为程序久久没有“响应”(感觉上)而退出。你可以在progress方法中监听请求的进度(如下图)。
最后
随着js的应用越来越广泛,js大法好,你会遇到越来越来的异步,希望这篇东西对你有一点点帮助,并来个赞👍。哈哈哈。
今天是父亲节,祝天下的父亲,父亲节快乐~
夏天快乐~