establezca un valor de sesión en 10 por ajax. En Chrome volverá a CERO. ¿¿Por qué?? mi.php
<?php session_start(); $_SESSION["temp"] = 0; ?> <div id="t">$_SESSION["temp"] = <?=$_SESSION["temp"]?> <br></div> <br><input type="button" value="Plus 5" onclick="javascript:plusn(5);"> <script> function plusn(n) { $.ajax({ url: 'myajax.php?n='+n, type: 'get', async: false, success:function(result){ $("#t").append(result) } }); } $(document).ready(function() { plusn(10); //initial add 10 }) </script>myajax.php
<?php session_start(); $_SESSION["temp"] += $_GET["n"]; exit('$_SESSION["temp"] = '.$_SESSION["temp"].'<br>'); ?>lugar aquí: https://cmbody.com/my.php Utilice diferentes navegadores para comprobarlo. Los celulares Chrome, Edge y Android obtienen un resultado erróneo; Firefox y iPhone obtienen los resultados correctos. PS misma condición usando COOKIE
Aquí está el culpable:
<link rel="shortcut icon" href="#" />El navegador intenta cargar el favicon desde la misma URL, como se indica. Para eso, realiza una solicitud adicional al script PHP principal. Las diferencias ocurren porque Firefox usa la página en caché y los navegadores basados en Chrome obtienen una copia nueva:
Funciona correctamente cuando lo envío con un retraso de 1000 milisegundos, pero esta no es una solución correcta. Seguiré investigando.
setTimeout(()=>{ plusn(10); },1000)