这里主要介绍三种方法:
1、Chrome DevTools(谷歌浏览器)的模拟手机调试
2、IOS Safari真机调试
3、Chrome DevTools远程调试Android
这种调试方式不仅能用于模拟手机调试还是主要的PC端页面调试的方式,这里主要说用于手机调试。
a.谷歌浏览器的开发者工具,可以参照下图右键选择”检查“或者使用快捷键F12,打开开发者工具。
b.打开后看到类似如下界面的开发者调试界面,Elements可以查看文档元素,Console可以在线调试js和查看输出结果,Sources可以调试JS和查看依赖资源,Network查看所有的网络请求等等。
c.如果没有需要模拟的机型怎么办?可以增加,点开机型设置面板,选择edit,然后可以在右方修改展示机型,如下:
d.还可以模拟不同网络情况。
a.使用数据线将 iPhone 与 Mac 相连
b.iPhone 开启 Web 检查器(设置 -> Safari -> 高级 -> 开启 Web 检查器)
c.iPhone 使用 Safari 浏览器打开要调试的页面(以兰亭单品页为例)
d.Mac 打开 Safari 浏览器调试(菜单栏 —> 开发 -> iPhone 设备名 -> 选择调试页面)
如果你的菜单栏没有“开发”选项,可以到左上角 Safari -> 偏好设置 -> 高级 -> 在菜单栏中显示“开发”菜单。
e.在弹出的 Safari Developer Tools 中调试。
经过如上步骤就可在 Mac 端调试 iPhone 上 Safari 运行的页面了。
a.在 Chrome 浏览器地址栏中输入 chrome://inspect/#devices 并回车,就可以打开 Inspect 调试界面,此时我们勾选Discover USB devices 选项便可以看到设备列表。
b.然后打开手机中开发者选项并打开 USB 调试开关(具体方法自行百度,不同手机有一定区别),使用数据线将手机连接到电脑上,我们就可以在设备列表中看到自己的设备。
c.这时,打开手机上的Chrome 浏览器,随便打开一个网址(以兰亭单品页为例),设备列表中你的设备下便会出现你打开的页面。
d.此时我们点击 inspect 选项。
e.接下来你便可以和调试 PC 界面一样通过 Chrome 进行你所需要的调试,你在左侧屏幕上做的一切操作和你的手机上的操作会始终保持同步,如果你嫌左边这块多余,也可以关闭 Toggle Screencast 只保留控制台本身。
具体原因是这样的:1、Java调用js里面的函数、效率并不是很高、估计要200ms左右吧、做交互性很强的事情、这种速度很难让人接受、而js去调Java的方法、速度很快、50ms左右、所以尽量用js调用Java方法。
2、Java调用js的函数、没有返回值、调用了就控制不到了。
3、Js调用Java的方法、返回值如果是字符串、你会发现这个字符串是native的、转成locale的才能正常使用、使用toLocaleString()函数就可以了、不过这个函数的速度并不快、转化的字符串如果很多、将会很耗费时间。
4、网页中尽量不要使用jQuery、执行起来需要5-6秒、最好使用原生的js写业务脚本、以提升加载速度、改善用户体验。
android安卓手机微信浏览器偶尔也有这样的问题,经过多次调试,发现是微信浏览器缓存了渲染页面,没有重新渲染页面,导致window.onload中JS无法执行。经过以上分析判断,给出的解决方案就是,如果使用了缓存,自动重载页面。以下是JS代码解决方案:
window.onpageshow = function(event) {
if (event.persisted) {
window.location.reload()
}
}
或者下方代码:
var isPageHide = false
window.addEventListener('pageshow', function () {
if (isPageHide) {
window.location.reload()
}
})
window.addEventListener('pagehide', function () {
isPageHide = true
})
html头部处理缓存信息:
扩展说明:
pageshow:
当一条会话历史记录被执行的时候将会触发页面显示(pageshow)事件。(这包括了后退/前进按钮操作,同时也会在onload 事件触发后初始化页面时触发)