У меня проблемы с небольшим количеством кода. У меня есть функция, которая делает некоторые вещи для некоторых данных, вызывает удаленную систему (активирует скрипт в этой системе и передает данные), а затем делает другой вызов той же системы для активации другого скрипта (который действует на данные сохранен выше). Проблема в том, что 1-й вызов удаленной системы, по-видимому, теряется при выполнении.
Это выполняется в 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. Но мне нужно, чтобы скрипты BOTH вызывались и запускались. Похоже, что запускается только LAST-скрипт в последовательности. Если я переключу их вокруг, останется все, что на последнем месте.
Есть ли что-то в области 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" });