【发布时间】:2009-07-17 15:33:35
【问题描述】:
我有以下设置,我需要知道如何保持状态。
1.) 外部网页使用 ajax 加载和显示一个 .jsp 文件,其中包含 javascript。 2.) 此渲染完成后,必须调用 .jsp 文件中的 javascript 以根据渲染期间发生的结果执行操作。具体来说,文档对 $(document).ready 执行操作,这些操作决定了以后的函数调用必须执行的操作。
我的问题是:如何持久化页面加载时创建的数据和状态?我尝试过这样的事情:
外部: ajax 到 test.jsp
内部测试.jsp
var saveMe = {};
function getsCalled()
{
saveMe = {'a':function(){return false;}};
}
function needsData()
{
//???
}
稍后...
外部:
needsData();
我似乎没有尝试任何工作。在这种情况下保持状态的最佳方式是什么?
【问题讨论】:
-
needsData将有权访问您示例中的saveMe变量。 “什么都没有 [...] 工作”是什么意思? -
没有尝试保存数据。 needsData 无权访问 saveMe。在 getsCalled() 中,我设置了 needsData.saveMe = {} 来解决这个问题。
-
我不确定,但您似乎正在加载 needsData 函数,在页面加载后,但您没有做任何事情来告诉 External 是什么,那里有一个方法。你需要一个外部的全局变量,然后使用原型关键字将需求数据添加到它。例如myGlobalVar.prototype.needsData = function(){//???}
-
@iftrue:你能给我们一个更详细的例子吗?在您的代码示例中,
getsCalled和needsData都可以获取和设置saveMe变量。请参阅:jsbin.com/udufe/edit 单击输出选项卡以运行 JavaScript 代码。 -
index.jsp:使用 ajax,将 page.jsp 加载到 div 中。在 page.jsp 的加载过程中,getsCalled() 被调用。加载完成后,调用 needsData()。 needData 看不到 saveMe(这个数据好像已经丢失了),但是可以看到函数上设置的变量。
标签: javascript jquery jquery-ui persistence scope