我在使用一些代码时遇到了一些麻烦。我有一个函数可以对某些数据执行某些操作,调用远程系统(激活该系统上的脚本并传入数据),然后再次调用同一系统来激活不同的脚本(对数据起作用)保存在上面)。问题是对远程系统的第一次调用似乎在执行中丢失了。
这是在Safari中运行,使用jquery;该函数与按钮单击相关联,按钮单击在javascript代码中使用onclick函数定义(即,它未在html按钮定义中定义)。
以下是该功能的粗略分类(为了查看目的而清理干净 - 我希望我留下足够清楚):
function compareJSON() {
// loop through the objects, testing and changing data
// ...
dataSession=({ //build object for output });
$.each( dataSession.chapters , function( indexC, value ) {
//compare objects to some others, testing and changing data
});
// ...
//Call remote script on other system
urlString="url://blah.dee.com/Blar?script=SaveJSON&$JSONobject=";
window.location= urlString + JSON.stringify(dataSession);
//Call remote script on other system
window.location="url://blah.dee.com/Blar?script=EditJSON";
}
最后三行代码是两个调用。它使用window.location实际触发远程系统,通过URL传递数据。但我需要两个脚本来调用和运行。似乎只有序列中的LAST脚本才会运行。如果我切换它们仍然是最后的地方。
是否有一些关于window.location的东西,直到函数结束才真正处理?
这个脚本实际上曾经是一系列单独的函数调用,但我认为我遇到了异步执行,导致各种脚本调用没有注册。但是,一旦我将代码放入这个单一的函数中,它仍然会发生。
任何线索都会有所帮助。
谢谢, Ĵ
答案 0 :(得分:0)
修改window.location
的值专门用于您希望导致浏览器重定向的实例。
看起来您想要触发页面请求。你说你已经加载了jQuery,如果是这样,你可以使用jQuery.get
或类似函数触发这样的请求。
例如:
// Loads the myscript.php page in the background
$.get('myscript.php');
// You can also pass data (in the form of an object as the second argument)
$.get('myscript.php', { name: "John", time: "2pm" });