2013-12-07 2 views
0

Я использую карты Google, чтобы получить адрес в мобильном приложении. Код работает нормально, когда есть подключение к Интернету. Если нет, мое приложение занимает 1 минуту для загрузки, или иногда оно показывает ошибку приложения. Это связано с загрузкой URL-адреса внутри скрипта, поэтому я хотел бы загрузить мой скрипт асинхронно. Может ли кто-нибудь дать мне некоторую логику для решения моей проблемы, как я могу переписать сценарий ниже асинхронно?Как использовать асинхронный Javascript?

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true"> 
function address() 
{ 
       var geocoder ; 
       geocoder = new google.maps.Geocoder(); 
       var latlng = new google.maps.LatLng(latitude, longitude); 
       geocoder.geocode({'latLng': latlng}, function(results, status) 
       {     
       if (status == google.maps.GeocoderStatus.OK) 
       { 
         if (results[0]) 
         { 
          var add= results[0].formatted_address ; 
          document.getElementById("location").innerHTML="Location : " + add ; 
         } 
         else 
         { 
          document.getElementById("location").innerHTML="No Results found " ; 
         } 
       } 
       else 
       { 
       //document.getElementById("location").innerHTML="Geocoder failed due to: " + status; 
       //alert("Geocoder failed due to: " + status);    
       } 
       }); 
} 

+0

проблема для ожидания, когда вы пытаетесь загрузить 'https: //maps.googleapis.com/maps/api/js? Sensor = true'. просто прокомментируйте это, если вы в автономном режиме. – suhailvs

+0

В галерее примеров карт Google вы можете посмотреть. – motiur

+0

Но мне нужно обрабатывать как офлайн, так и онлайн – user1869857

ответ

0

Это следует сделать это:

jQuery.getScript('https://maps.googleapis.com/maps/api/js?sensor=true', address); 

BTW, getScript() вспомогательная функция для jQuery.ajax(). если вы используете последний, вы можете взять больше контроля и установить дополнительные параметры, в частности параметр timeout, поэтому он не будет просто вращаться навсегда или параметр cache, так что вам не придется его постоянно искать

A скрипка похожа. К сожалению, скрипты не могут напрямую использовать внешние ресурсы, поэтому мне нужно создать более простой запрос сценария, но вы можете увидеть, что обратный вызов ссылается на новый javascript.

+0

Спасибо за предложение. Все хорошо. Мне нужно попробовать. – user1869857

+0

Если вы загружаете сценарий асинхронно, OP также НЕ должен будет использовать его, пока он не завершит загрузку, возможно, используя функцию завершения на 'getScript()'. – jfriend00

+0

Я не могу это получить. Не могли бы вы показать один пример. Заранее спасибо – user1869857

Смежные вопросы