XMLHttpRequest 对象提供了方法 abort 来取消请求,onabort 可以别用来监听请求的取消。它仅仅被用来取消客户端的请求,服务端已经收到请求了还是会继续自己的操作的。页面跳转的时候, ajax 请求也会自动 abort。
timeout 的值是 XMLHttpRequest 中支持的设置,在达到设置的时间后,会 abort 掉发送的请求,客户端的 timeout 设置要区分于服务器端的 timeout 设置,客户端 timeout 通常是自己的 error 会被抛出,而服务端的超时则会返回 status 503。
关于封装的 Ajax 库如何实现 timeout,自己想到的两个思路: