navigator.geolocation.getCurrentPosition fonctionne parfois et parfois non
P粉831310404
P粉831310404 2023-08-27 15:01:59
0
1
429
<p> <pre class="brush:php;toolbar:false;">$(document).ready(function(){ $("#business-locate, #people-locate").click(function() { navigator.geolocation.getCurrentPosition(foundLocation, noLocation); }); navigator.geolocation.getCurrentPosition(foundLocation, noLocation); fonction foundLocation(position) { var lat = position.coords.latitude; var lon = position.coords.longitude; var userLocation = lat + ', ' + lon; $("#business-current-location, #people-current-location").remove(); $("#À proximité") .watermark("Emplacement actuel") .after("<input type='hidden' name='business-current-location' id='business-current-location' value='"+userLocation+"' />"); $("#personnes-à proximité") .watermark("Emplacement actuel") .after("<input type='hidden' name='people-current-location' id='people-current-location' value='"+userLocation+"' />"); } fonction noLocation() { $("#Near-Me").watermark("Impossible de trouver l'emplacement"); $("#people-Near-Me").watermark("Impossible de trouver l'emplacement"); } })//fin DocReady</pre> <p> « 当前位置 »的字段中,并且使用经纬度数据作为其值创建两个隐藏字段(它们在开始时就被删除,这样它们就不会每次都重复)。还有两个按钮具有与其关联的单击功能,可以执行相同的操作。 不幸的是,每隔三次左右,它就会起作用。 这是什么问题???</p>
P粉831310404
P粉831310404

répondre à tous(1)
P粉775788723

J'ai une réponse partielle, mais malheureusement pas une réponse complète.

Tout d'abord, sachez que le délai d'expiration par défaut pour getCurrentPosition est infini(!). Cela signifie que si getCurrentPosition se bloque quelque part dans le backend, votre gestionnaire d'erreurs ne sera jamais appelé.

Pour garantir les délais d'attente, ajoutez un troisième paramètre facultatif à l'appel à getCurrentPosition, par exemple si vous souhaitez que l'utilisateur n'attende pas plus de 10 secondes avant d'être invité à expliquer ce qui s'est passé, utilisez : p>

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

Deuxièmement, j'ai fait l'expérience d'une fiabilité complètement différente dans différents environnements. À la maison, je recevais un rappel dans une seconde ou deux, même si la précision était médiocre.

Au travail, je constate cependant un changement de comportement assez étrange : la géolocalisation fonctionne tout le temps sur certains ordinateurs (sauf IE, bien sûr), d'autres ne fonctionnent que sous Chrome et Safari, mais pas sous Firefox (problème de gecko ?), d'autres les ordinateurs ne fonctionnent qu'une seule fois, puis tombent en panne - ce modèle change toutes les heures et tous les jours. Parfois, vous avez un ordinateur « chanceux », parfois non. Peut-être qu’abattre la chèvre pendant la pleine lune aiderait ?

Je ne comprends pas cela, mais je soupçonne que l'infrastructure backend est plus déséquilibrée que ce qui est annoncé dans les différents livres et sites Web passionnés proposant cette fonctionnalité. J'aurais vraiment aimé qu'ils soient plus directs sur l'instabilité de cette fonctionnalité et sur l'importance des timeouts si vous souhaitez que vos gestionnaires d'erreurs fonctionnent correctement.

J'ai essayé de les enseigner aux étudiants aujourd'hui et je me suis retrouvé dans une situation embarrassante où mon propre ordinateur (sur un projecteur et quelques grands écrans) tombait en panne silencieusement alors qu'environ 80 % des étudiants obtenaient des résultats presque instantanément. (en utilisant exactement le même réseau sans fil). Lorsque mes élèves font également des fautes de frappe et d'autres erreurs, et lorsque mon propre ordinateur tombe en panne, il est très difficile de résoudre ces problèmes.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!