下面这一段简单的代码,我希望只有一个线程去修改。
var key = 'key';if(localstorage.getItem(key) == null) { localstorage.setItem(key, 'page a'); }
类似java里的加锁。
举个更详细的例子。页面轮询ajax获取通知,打开多个页面的时候只需要让其中一个页面去执行,将结果写入到localStorage,其他页面从localStorage读取。关键在于要保证只要一个页面去轮询,所以在localStorage里的某个字段做标记。读取标记和修改标记时一个完整的操作,并且一个线程没操作完的时候,另一个线程不能去操作。
相关分类