跨域解决方案

受浏览器同源策略的限制,ajax 只能向同源(协议、域名、端口都相同)网址发出 http 请求,跨源请求会被阻止、报错。下面介绍 5 种跨域解决方案,具体方案还需要根据实际应用场景来选择。

More

JavaScript 观察者模式

观察者(observer)模式又叫订阅/发布(subscriber/publisher)模式。浏览器的事件监听就是这种模式的实例。订阅者 A 订阅发布者 B 的特定动作,当发布者 B 的特定动作发生后,订阅者 A 便会收到通知,然后订阅者 A 就可以进行相应的处理。

More

JavaScript 单例模式

单例模式保证一个特定类只有一个实例对象。也就是说多次用同一个类来创建对象,得到的都是同样一个对象。严格意义上,JavaScript 没有类,只有对象,对象之间永远不会完全相等,除非它们是同一个对象,所以我们创建的每一个对象都可以看做是单例。比如,我们可以用对象字面量来创建单例对象。

More

ready 方法的实现

很多时候,我们需要在页面加载完成后执行某些方法。我们首先可能会想到 window.onload 事件,但是,该事件会等到 dom、script、css、image 以及 iframe 等所有资源都加载完后才会触发,这么多资源都加载完是很耗时的,所以,比较好的办法是只在 dom 加载完后就执行这些方法。

More

浏览器本地存储(二)

上篇讨论了 cookie 本地存储方式,这里继续讨论 localStorage。鉴于 cookie 会随着每个服务器请求来回传递,所以会影响请求速度,而且 cookie 的个数和容量都很有限。html5 提供了 localStorage 和 sessionStorage 等两种客户端存储数据的新方法。

More

浏览器本地存储(一)

有时候需要将一些数据存储在用户浏览器本地,下次用户访问我们的页面的时候,我们就能根据存储在用户浏览器的本地数据,做一些针对当前用户的个性化操作。例如,用户访问我们页面的时候,也许会填写用户名,可以将用户名(userName)存储在用户的浏览器中,下次用户再访问我们页面的时候,弹出一个“欢迎你,{userName}” 的欢迎词。

More