Javascript window.location звонки теряются?

0

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

  • 0
    Вы загружаете другую страницу в окно?
  • 0
    в любом случае, этот метод не будет надежным, так как будут гарантии того, что первый вызов завершен до того, как будет отправлен второй ... вы можете захотеть взглянуть на AJAX ...
Показать ещё 2 комментария
Теги:
asynchronous
window.location

1 ответ

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" });
  • 0
    Джейкоб: Да, мы используем перенаправление браузера, чтобы сервер запускал скрипт. Я посмотрю, сможем ли мы заставить это работать; мне запомнилось, что мы пробовали это в прошлом и столкнулись с техническими проблемами. Это не совсем полноценная веб / интернет среда со всеми доступными тонкостями. Это веб-просмотрщик внутри решения FileMaker DB.
  • 0
    О, я должен уточнить, что, поскольку это веб-просмотрщик FileMaker, URL-вызов на самом деле не использует HTTP, а использует протокол FMP (таким образом, он отправляется на сервер FileMaker для обработки и, следовательно, вызова сценария).
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню