JavaScript 库与框架:从基础到 jQuery 实战
1. XHR 请求结果缓存扩展
在处理 XHR 请求时,我们可以扩展其方法以缓存请求结果。具体做法是用立即执行函数表达式(IEFE)返回的结果覆盖原有的 successCallback()
方法。我们将原 successCallback()
方法作为 oldCallback
参数传入 IEFE。在 IEFE 内部,创建一个新函数来缓存数据,然后调用 oldCallback
函数。最后,IEFE 返回这个新函数,它将接管 successCallback()
方法。
这种技术的好处是,无需重写 XHR 定义对象中的 successCallback()
方法,就可以将新的 cachedXHR()
方法添加到现有代码中,处理缓存相关的操作。
为验证该函数是否按预期工作,需要搭建个人 Web 服务器,例如使用 Aptana 自带的调试服务器(运行在 8020 端口)。可以使用简单的 ajax - test.txt
文件(内容为 “hello world”)进行测试,也可以传输 JSON 或 XML 格式的数据。
这个函数功能较为基础,可进一步扩展。例如,当浏览器不支持 localStorage
时,可以使用 document.cookie
,具体使用方法可查阅相关资料。