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