SORU
3 AĞUSTOS 2010, Salı


navigator.coğrafi konum.getCurrentPosition bazen't değil bazen çalışıyor

JS navigator kullanarak oldukça basit bir bit var.coğrafi konum.getCurrentPosition kaliteli.

$(document).ready(function(){
  $("#business-locate, #people-locate").click(function() {
    navigator.geolocation.getCurrentPosition(foundLocation, noLocation);
  });

  navigator.geolocation.getCurrentPosition(foundLocation, noLocation);

  function foundLocation(position) {
    var lat = position.coords.latitude;
    var lon = position.coords.longitude;
    var userLocation = lat   ', '   lon;
    $("#business-current-location, #people-current-location").remove();
    $("#Near-Me")
      .watermark("Current Location")
      .after("<input type='hidden' name='business-current-location' id='business-current-location' value='" userLocation "' />");
    $("#people-Near-Me")
      .watermark("Current Location")
      .after("<input type='hidden' name='people-current-location' id='people-current-location' value='" userLocation "' />");
  }
  function noLocation() {
    $("#Near-Me").watermark("Could not find location");
    $("#people-Near-Me").watermark("Could not find location");
  }
})//end DocReady

Temelde ne oluyor burada biz mevcut pozisyonu, eğer elde edilen, iki "filigran" yerleştirilen iki alan demek "Geçerli Konum" ve iki gizli alanları oluşturulan lat-long veri olarak değer (onlar kaldırıldı başlangıçta çok değiller, yinelenen her zaman). Aynı şeyi o da bir tıklama fonksiyonu onlara bağlı olan iki düğme vardır. Ne yazık ki, her üçüncü seferinde işe yarıyor. Buradaki sorun nedir???

CEVAP
7 EKİM 2010, PERŞEMBE


Yaşamaktadırlartam olarakaynı sorun ve hemen hemen hiçbir bilgi yok nette bulma. Kitaplarda hiç bir şey yok. Sonunda ben ve (ha!) stackoverflow bu sorgu ayık bulundu burada bir hesap kurmak için gereken son itici güç oldu.

Ve kısmi bir cevap, ama ne yazık ki tam değil.

Öncelikle, bu farkvarsayılan zaman aşımıgetCurrentPositionsonsuz(!). Hata işleyicisi anlamına gelirhiç aramadıeğer getCurrentPosition bir yerde arka ucunda duruyor.

Emin olmak için bir zaman aşımı ekleyin isteğe bağlı parametre aramanız için getCurrentPosition, örneğin, eğer istediğiniz kullanıcı için bekleyin en fazla 10 saniye önce vererek, onlara bir ipucu ne oluyor, kullanın:

navigator.geolocation.getCurrentPosition(successCallback,errorCallback,{timeout:10000});

İkinci olarak, oldukça farklı farklı bağlamlarda güvenilirlik yaşadım. Burada, evde, doğruluk kötü olsa bile bir veya iki saniye içinde geri alıyorum.

İşe ancak, benim deneyim oldukça garip varyasyonlar davranış: coğrafi konum çalışıyor bazı bilgisayarlarda her zaman (IE hariç, elbette), diğerleri sadece iş olarak chrome ve safari değil firefox (gecko sorunu?), diğerleri bir kez, daha sonra başarısız - çalışma ve saat, her gün için saat desen değiştirir. Bir 'şanslı' bilgisayar, bazen olmaz. bazen Belki de Dolunay at kesim keçi yardım eder misin?

Bunu anlamak mümkün değil, ama sanıyorumarka uç altyapı reklamı daha düzensizbu özellik, şişen bir gung-ho kitaplar ve web siteleri çeşitli. Ben nasıl flakey bu özellik . biraz daha düz olması diliyorum ^strong>ne kadar önemli bu ayar zaman aşımı hata işleyicisi düzgün çalışmak istiyorsanız,.

Ben öğretmeye çalışıyor bu şey için öğrenciler bugün, ve bu utanç verici durum nerede benim kendi bilgisayar (projektör ve birkaç büyük ekran) başarısız sessizce, oysa 80% öğrenciler kitap almak sonuç hemen hemen anında (kullanarak aynı kablosuz ağ). Çok zor benim öğrenciler de yazım hataları ve diğer dolayı yapıyoruz, ve benim kendi pc de başarısız olduğunda, bu sorunları çözmek için.

Her neyse, bu bazı çocuklar yardımcı olur umarım. Aklı Çek için de teşekkürler!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ASUS Campus Life

    ASUS Campus

    18 Mart 2013
  • Google Developers

    Google Devel

    23 AĞUSTOS 2007
  • Crossover

    Crossover

    18 HAZİRAN 2007