小编use*_*463的帖子

在js中同步管理缓存

我在全局缓存变量中使用jquery在JavaScript中维护缓存.

每当使用AJAX接收到新信息时,它都会被添加到缓存中.

如果它不在缓存中,我想从服务器AJAX它.

我想实现一个按需查询的函数,并像这样使用它:

$("#label").html(GetName("user123"));
Run Code Online (Sandbox Code Playgroud)

GetName()应该是这样的:

function GetName(username) {
    if (Cache[username] != null) return Cache[username];
  else
    return QueryUsernameFromServer(username)
}
Run Code Online (Sandbox Code Playgroud)

QueryUsernameFromServer()应该是这样的:

function QueryUsernameFromServer (username) {
    return $.ajax(…);
}
Run Code Online (Sandbox Code Playgroud)

但是,$ .ajax是异步的意思是它不能等待一个值(因此无法返回它).

强烈建议不要在同步模式下使用$ .ajax(浏览器挂起,它不支持JSONP),http://api.jquery.com/jQuery.ajax/

使用此方法,http://www.techfounder.net/2008/05/17/simple-javascript-cache/,方法需要回调.但是,不希望为每次使用创建回调.

有没有一种很好的方法在js和ajax中实现"按需缓存"功能而没有为每次使用提供专用的回调?

javascript ajax jquery caching

5
推荐指数
1
解决办法
295
查看次数

标签 统计

ajax ×1

caching ×1

javascript ×1

jquery ×1