alert时java还时js_js 加alert后才能执行方法
原因是:訪問頁面時,某些js方法還沒初始化(或者還沒有加載出來)此時調用肯定不執行。alert起到了延遲的功能,當用戶點擊確定此時要執行的js恰好初始化完成,能正常執行。
解決方法是 加setTimeout函數,延遲1秒執行js。
分析現象,逐個排查,找到問題的本質,想解決方案。
現象:在做手機端頁面開發使,有一個倒計時功能,正常使用沒問題。問題就出在當用戶從手機瀏覽器切換到其他應用在切到手機瀏覽器,這這段時間內倒計時器沒有執行,導致計數不準。
后來找到visibitilychange 事件,即頁面可見性。當用戶重新切換到瀏覽器時刷新頁面從服務器拿到最新的倒計時時間。
測試后發現新的問題來了,ios 可以完美刷新。Android 總是有時候刷新有時候不刷新。開始以為是visibilitychange瀏覽器兼容性問題,找了好久沒解決。
反復debug發現,visitilitychange 每次都能執行并alert 值出來。接著排查 將問題 js刷新 當前頁面。window.location.href=location.href。更換刷新代碼后問題依然存在。
百思不得其解,這個時候轉機出現了(念念不忘,終有回響),加入alert后每次都能正常刷新,去掉alert后就不刷新了。
這才找到問題發生的本質。
解決方法是:加setTimeout,1秒后執行刷新的操作
// 手機標簽切換事件
function visibilityChange() {
document.addEventListener('visibilitychange', function() {
var u = navigator.userAgent;
if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {
//alert(document.visibilityState);
if(document.visibilityState=='visible'){
setTimeout(function() {
location.reload();
}, 1000);
}
} else if (u.indexOf('iPhone') > -1) {
location.reload();
} else {
setTimeout(function() {
location.reload();
}, 1000);
}
});
}
jquery-事件之頁面框架加載后自動執行
jQuery事件之頁面框架加載后自動執行 1)概述 HTML執行是按自上而下編譯,而
不阻塞瀏覽器的解析,待外部js下載完成后異步執行
網站統計中的數據收集原理及實現(js埋點實現) - lastwhisper - CSDN博客 https://blog.csdn.net/l1212xiao/article/details/80450 ...
Java-JUC(十二):有3個線程。線程A和線程B并行執行,線程C需要A和B執行完成后才能執行。可以怎么實現?
方案(一)CountDownLatch: 使用CountDownLatch+Semaphore方式實現: import java.util.concurrent.CountDownLatch; imp ...
spring啟動后立即執行方法
1.方法所屬的類繼承InitializingBean接口. 2.重寫afterPropertiesSet()方法. afterPropertiesSet方法會在bean被初始化時執行. 當bean的作 ...
解決每次執行Java等命令時都要重新source /etc/profile后才能執行,否則找不到命令
linux mint 我們通常將環境變量設置在/etc/profile這個文件中,這個文件是全局的. /etc/profile:在登錄時,操作系 統定制用戶環境時使用的第一個文件 ,此文件為系統的每個 ...
關于alert后,才能繼續執行后續代碼問題
如果在正常情況下,代碼要在alert之后才執行,解決辦法:將要執行的代碼用setTimeout延遲執行即可(原因:頁面未加載完畢) 首先,先說明問題情況: 如下JS代碼,不能正常執行,只有在最前面加上 ...
隨機推薦
ASP.net解析JSON例子
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
VisualSVN Server以及TortoiseSVN客戶端的配置和使用方法
http://www.cnblogs.com/beautifulFuture/archive/2014/07/01/3818211.html 近期學習代碼管理工具,首先學習一下svn和Tortoise ...
sublime 設置文件默認打開方式
win7,sublime text 3 無法關聯文件 刪除 HKEY_CURRENT_USER\Software\Classes\Applications下的Sublime_Text.exe項.你就發 ...
asp.net core 2.0 Microsoft.Extensions.Logging 文本文件日志擴展
asp.net core微軟官方為日志提供了原生支持,有如下實現 Console Debug EventLog AzureAppServices TraceSource EventSource 并且在 ...
mysql初學,mysql修改,mysql查找,mysql刪除,mysql基本命令
Mysql 下載地址https://dev.mysql.com/downloads/mysql/ 1.連接Mysql格式: mysql -h主機地址 -u用戶名 -p用戶密碼 1.連接到本機上的MYS ...
[bzoj2843&;&;bzoj1180]極地旅行社 (lct)
雙倍經驗雙倍的幸福... 所以另一道是300大洋的世界T_T...雖然題目是一樣的,不過2843數據范圍小了一點... 都是lct基本操作 #include #includ ...
了解vue里的Runtime Only和Runtime+Compiler
轉自:了解vue里的Runtime Only和Runtime+Compiler 擴展文章:Vue 2.0如何僅使用Runtime-only Build構建項目? 可以看到有兩種版本: Runtime ...
Centos 安裝 python2.7.10以及pip
安裝python2.7.10 1. 下載安裝包并解壓 wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz tar -xf P ...
No.7 selenium學習之路之Alert彈窗
Alert彈窗 彈窗是用工具選不到的~ 切換到alert driver.switch_to_alert() 新的語法:driver.switch_to.alert 注:新的語法不需要后面加括號 打印a ...
UBUNTU 14.04 INSTALL nsenter
cd /tmp; curl https://www.kernel.org/pub/linux/utils/util-linux/v2.25/util-linux-2.25.tar.gz?| tar - ...
總結
以上是生活随笔為你收集整理的alert时java还时js_js 加alert后才能执行方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dom查看数据库mysql_Linux中
- 下一篇: java浮点数原理,浮点型数据存储原理