【问题标题】:Caching ajax result on client side in asp.net mvc2在asp.net mvc2的客户端缓存ajax结果
【发布时间】:2010-09-08 19:00:13
【问题描述】:

我想做类似的事情

这是可以在here找到的谷歌音译的截图。在这个应用程序中,用户用罗马脚本编写,当他/她按空格键时,一个 ajax 请求会发送到服务器,带回单词列表。然后罗马单词被结果列表中的单词 top 替换(在我的例子中是乌尔都语结果列表)。现在,当我继续打字时,过了一段时间我回来发现一个词不像我打算写的那样。

我点击那个词,会打开一个上下文菜单,如图所示,但重要的是这次没有 ajax 请求发送到服务器,而是 Google 选择存储在客户区域(浏览器)中的某个地方的结果。我的问题是如何在客户端缓存 ajax 结果,第二件事是如何使用上下文菜单或类似界面将每个结果与文本区域或富文本框中的每个单词相关联。

我想在 asp.net mvc2 中完成类似的功能。

【问题讨论】:

  • 你应该结合你的问题

标签: user-interface asp.net-mvc-2 asp.net-ajax jquery


【解决方案1】:

只需将 ajax 调用的结果存储在 javascript 变量中 - 您可以稍后访问它:

var dictionary = new Object();
var input = 'hello';

$.ajax({
  url: url,
  dataType: 'json',
  data: data,  // <-- you send your input to server here
  success: function(response) {
    dictionary[input] = response;
  }
});

【讨论】:

  • 感谢您的回复。我只想创建一个字典,在我的第一次调用中说我发送参数 word = “hello” 字典应该包含由单词 “hello” 索引的 ajax 结果,第二次我需要这个结果我会检查字典,如果 “hello” 的结果是出现在字典中,否则我会去从服务器获取它。我想知道如何在 js (jquery) 中创建这个字典的东西
  • 在 JS 中每个对象都是一个字典 ;-) 使用 var dic = new Object(); dic['hello'] = myArray; dic['hello2'] = otherArray; var helloAnswers = dic['hello']; (刚刚编辑了我的答案)
  • 嗯,应该可以+1。让我周末后试试。玩得开心
猜你喜欢
  • 2022-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-07
  • 1970-01-01
  • 1970-01-01
  • 2011-02-08
  • 1970-01-01
相关资源
最近更新 更多