我对ajax的理解。Ajax只是封装了xmlhttprequest重新开启了一个线程。对返回值,做出了响应。而如果我们不用xhr的异步的话,而只用同步的话,我们对这个请求,未完成之前,不能发出下一个请求。而关于登陆,局部刷新这个观点,我并不能理解。使用xhr任然能实现局部刷新,只不过,不能异步处理其他的。如果,我们没有对xhr处理的话,那么浏览器默认的只是会重新加载一个页面。我猜。因此,会刷新掉原来的页面。如果我们用了ajax封装的话,我们就会对其进行处理。而不会采用浏览器的默认处理方式。

因此ajax只是一个异步请求的操作。并没有达到局部刷新的结果。为啥达到异步刷新的结果,是因为我们没有对浏览器的返回值做处理。浏览器默认的是对我们返回的值,弄到子页面处理。如果,我们对浏览器返回的值,做了处理的话,那么就不会是一个子页面了。不过这样的话,确实起到了局部刷新的作用啊。因为有些我们并没法对请求的结果作出处理。

为了验证我所说的,我将用button来提交页面然后用xhr来处理结果,看他是不是能局部刷新。如果能局部刷新的话,那就满足了我提出的猜想。

好像图片之类的不是xhr请求,因此不存在跨域的影响。

跨域的影响满足几个条件

Json对象,其实就是js对象。传输的是json文本。

Xhr是实现了局部刷新的产物。Ajax是实现了异步的产物。

关于iframe可能,我猜也只是对响应进行了拦截,然后,对中间过程进行了处理,这样就不会反应在子页面中咯。好厉害。所以iframe是另一个页面。

Async = false

如需使用 async=false,请将 open() 方法中的第三个参数改为 false:

xmlhttp.open("GET","test1.txt",false);

我们不推荐使用 async=false,但是对于一些小型的请求,也是可以的。

请记住,JavaScript 会等到服务器响应就绪才继续执行。如果服务器繁忙或缓慢,应用程序会挂起或停止。或者说我们不能操作其他的只能等这个请求完成才能操作其他的。这就好好玩咯。是吗?是这样的吗?好玩。

关于啥我又忘记,我想说啥了。好无奈。哦

其实是这样的,浏览器解析html的话,是逐行逐行来进行解析的。遇到js,css的link的话,浏览器会异步加载。然后进行解析。