具体代码如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <script> //生成uuid var uuidChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" .split( "" ); function uuid() { var r; var uuid = []; uuid[ 8 ] = uuid[ 13 ] = uuid[ 18 ] = uuid[ 23 ] = "-" ; uuid[ 14 ] = "4" ; for (i = 0 ; i < 36 ; i++) { if (!uuid[i]) { r = 0 | Math.random() * 16 ; uuid[i] = uuidChars[(i == 19 ) ? (r & 0 x 3 ) | 0 x 8 : r]; } } return uuid.join( "" ); } // 兼容 android history.replaceState(null, null, "/currentURL?a=" +uuid()); // 兼容 ios $(function () { var isPageHide = false; window.addEventListener( 'pageshow' , function () { if (isPageHide) { window.location.reload(); } }); window.addEventListener( 'pagehide' , function () { isPageHide = true; }); }) </script> |
•android 端使用的h5中的history对象,history.replaceState(null, null, "/currentURL?a="+uuid());
在页面加载完成后改变当前url(拼接一个uuid或者随机数),这样每次后退的时候,浏览器发现当前url在浏览器缓存中不存在就会去重新加载。
•但是 ios 端不支持上述方法,所以用了一段jquery代码解决。