JavaScript的window.location调用迷路了吗?

我在一些代码上遇到了一些麻烦。 我有一个函数可以为某些数据执行一些操作,调用远程系统(激活该系统上的脚本并传入数据),然后再调用同一个系统来激活不同的脚本(它对数据起作用保存在上面)。 问题是第一次调用远程系统似乎在执行过程中丢失了。

这是在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传递数据。 但我需要两个脚本才能被调用并运行。 看来只有序列中的最后一个脚本才能运行。 如果我切换它们,它仍然是最后的地方。

有没有关于window.location的东西,直到函数结束才真正处理?

这个脚本实际上是一系列单独的函数调用,但我想我正在运行异步执行,导致各种脚本调用不能注册。 但是,一旦我将代码放入这个单一功能中,它仍然在发生。

任何线索都会有帮助。

谢谢,J


修改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" });
链接地址: http://www.djcxy.com/p/71687.html

上一篇: Javascript window.location calls getting lost?

下一篇: Allocating a new call stack