Rumah  >  Soal Jawab  >  teks badan

navigator.geolocation.getCurrentPosition kadangkala berfungsi dan kadangkala tidak

<p>所以我使用 navigator.geolocation.getCurrentPosition jammy 有一个非常简单的 JS。</p> <pre class="brush:php;toolbar:false;">$(document).ready(function(){ $("#business-locate, #people-locate").klik(function() { navigator.geolocation.getCurrentPosition(foundLocation, noLocation); }); navigator.geolocation.getCurrentPosition(foundLocation, noLocation); function foundLocation(position) { var lat = position.coords.latitud; var lon = position.coords.longitud; var userLocation = lat + ', ' + lon; $("#business-current-location, #people-current-location").remove(); $("#Near-Me") .watermark("Lokasi Semasa") .after("<input type='hidden' name='business-current-location' id='business-current-location' value='"+userLocation+"' />"); $("#people-Near-Me") .watermark("Lokasi Semasa") .after("<input type='hidden' name='people-current-location' id='people-current-location' value='"+userLocation+"' />"); } fungsi noLocation() { $("#Near-Me"). watermark("Tidak dapat mencari lokasi"); $("#people-Near-Me"). watermark("Tidak dapat mencari lokasi"); } })//end DocReady</pre> <p>基本上,这里发生的事情是我们获取当前位置,如果获取了,两个“水印我们获取当前位置,如果获取了,两个“水印我们们获取当前位置,如果获取了,两个“水印”徨个中中中文当前位置”的字段中,并且使用经纬度数据作为其值创建两个隐藏字段(它们在开始时就被删除,这样它们就不会每次都重复)。还与有中关联的单击功能,可以执行相同的操作。 不幸的是,每隔三次左右,它就会起作用。 这是什么问题???</p>
P粉831310404P粉831310404419 hari yang lalu399

membalas semua(1)saya akan balas

  • P粉775788723

    P粉7757887232023-08-28 09:08:27

    Saya mempunyai jawapan separa, tetapi malangnya bukan jawapan yang lengkap.

    Pertama, sedar bahawa tamat masa lalai untuk getCurrentPosition ialah infinite(!). Ini bermakna jika getCurrentPosition tergantung di suatu tempat di bahagian belakang, pengendali ralat anda akan tidak akan dipanggil.

    Untuk memastikan tamat masa, tambahkan parameter ketiga pilihan pada panggilan untuk getCurrentPosition, contohnya jika anda mahu pengguna menunggu tidak lebih daripada 10 saat sebelum digesa apa yang berlaku, gunakan:

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

    Kedua, saya telah mengalami kebolehpercayaan yang sama sekali berbeza dalam persekitaran yang berbeza. Di rumah, saya akan menerima panggilan semula dalam masa satu atau dua saat, walaupun ketepatannya lemah.

    Di tempat kerja, bagaimanapun, saya mengalami perubahan tingkah laku yang agak pelik: geolokasi berfungsi sepanjang masa pada sesetengah komputer (kecuali IE, sudah tentu), yang lain hanya berfungsi dalam krom dan safari, tetapi tidak dalam Firefox (masalah tokek? ), lain-lain komputer hanya berfungsi sekali dan kemudian gagal - corak ini berubah setiap jam dan setiap hari. Kadangkala anda mempunyai komputer "bertuah", kadangkala tidak. Mungkin menyembelih kambing semasa bulan purnama akan membantu?

    Saya tidak faham perkara ini, tetapi saya mengesyaki bahawa infrastruktur bahagian belakang lebih tidak seimbang daripada yang diiklankan dalam pelbagai buku dan tapak web peminat yang mendorong ciri ini. Saya benar-benar berharap mereka akan lebih langsung tentang betapa tidak stabilnya ciri ini dan betapa pentingnya masa tamat jika anda mahu pengendali ralat anda berfungsi dengan betul.

    Saya telah cuba mengajar perkara ini kepada pelajar hari ini dan menghadapi situasi memalukan komputer saya sendiri (pada projektor dan beberapa skrin besar) gagal secara senyap manakala kira-kira 80% pelajar mendapat keputusan hampir Mendapatkan serta-merta (menggunakan rangkaian wayarles yang sama). Apabila pelajar saya juga melakukan kesilapan menaip dan kesilapan lain, dan apabila komputer saya sendiri tidak berfungsi, adalah sangat sukar untuk menyelesaikan masalah ini.

    balas
    0
  • Batalbalas