Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Синхронизация вызова AJAX с внутренним кодом / 4 сообщений из 4, страница 1 из 1
13.08.2009, 19:32
    #36142915
Avis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация вызова AJAX с внутренним кодом
Господа,

Я в JavaScript не силен, поэтому просьба помочь решить проблему в синхронизации вызова к Google maps.
Суть проблемы в том, что на сервер отправляется запрос и не дождавшись ответа выполняется alert(gx).
Как мне дождаться окончания выполнения запроса geocoder.getLatLng, а потом уже алертом показать результат?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
function GeocodeAddress(address)
{
geocoder = new GClientGeocoder();	
if (geocoder) {
          geocoder.getLatLng(  // Шлем запрос к google 
          address,
          function(point) 
          {
            if (point) {
                           gx = point.lat();
                           gy = point.lng();
                         }
		else
                         {
                           gx = -1;
                           gy = -1;
                         }
          }
        );     
}
       alert(gx);  // Здесь получаем пустое значение
       window.setTimeout('alert(gx)', 300);  // Здесь после задержки видим результат, который прислал google


}
...
Рейтинг: 0 / 0
13.08.2009, 23:11
    #36143161
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация вызова AJAX с внутренним кодом
Обрабатывать ответ в callback запроса (функция).
...
Рейтинг: 0 / 0
14.08.2009, 11:21
    #36143798
Avis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация вызова AJAX с внутренним кодом
IDVsbruck,

Можешь написать пример в 2-3 строчки?
Спасибо.
...
Рейтинг: 0 / 0
14.08.2009, 17:08
    #36145169
illion
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация вызова AJAX с внутренним кодом
Avis,

почему Вы не пользуетесь поиском, а сразу идете на форум , чтобы здесь все решили? Вот, например, текст функции, взятой из первого же документа, выданного по запросу "geocoder.getLatLng" ( http://code.google.com/intl/ru-RU/apis/maps/documentation/services.html ):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
var geocoder = new GClientGeocoder();

function showAddress(address) {
  geocoder.getLatLng(
    address,
    function(point) {
      if (!point) {
        alert("\"" + address + "\" not found");
      } else {
        map.setCenter(point,  13 );
        var marker = new GMarker(point);
        map.addOverlay(marker);
        marker.openInfoWindowHtml(address);
      }
    }
  );
}
по-моему, отсюда явно видно, что обработка (т.е. Ваш алерт) должна находиться внутри function(point).
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Синхронизация вызова AJAX с внутренним кодом / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]