最近遇到了很多移动端调试h5页面的坑,总结一下 安卓端调试h5 一般情况下 安卓的包需要是开启webview调试 ` java if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWebContentsDebuggingEnabled(true); } ` 安卓设备需要打开开发者模式-运行远程调试 chrome浏览器打开 chrome://inspect, 勾选 usb调试 (Enabl...
dispath_once dispatch_once 实际调用 dispatch_once_f `c void dispatch_once_f(dispatch_once_t val, void *ctxt, void (func)(void *)){ volatile long *vval = val; if (dispatch_atomic_cmpxchg(val, 0l, 1l)) { func(ctxt); // block真正执行 dispatch_atomic_ba...
vue实例生命周期 [2.0] beforeCreate created beforeMount mounted beforeUpdate update beforeDestroy destroyed vue-router 生命周期 全局的 router.beforeEach router.beforeResolve router.afterEach 单个路由独享 beforeEnter 组件级的 beforeRouteEnter ...
性能优化总少不了缓存,网页性能优化里面静态资源相关优化是少不了浏览器的缓存 强缓存 通过 两个http response header: Expires Cache-Control Expires: 浏览器请求时,会把资源和response header 都缓存下来 再次请求这个资源时,会先在缓存中找,如果找到了,而且当前时间小于Expires中的时间,缓存命中就不会去请求服务器了。所以首当前客户端时间影响 如果缓存没有命中会去请求服务器,更新Expires Cache-Control: 第一次请求时,会缓存资源...
看了[一步一步搭建前端监控系统] 觉得非常不错,记录总结一下 JS错误监控 重写window.onerror 方法,来处理异步的错误 重写console.error 方法,暂时没发现有什么用 重写window.onunhandlerejection,用于Promise出错,但是没有catch的时候 静态资源加载监控 需要先加载监控的sdk才有用 通过window.onerror方法,跨域资源加载会有问题,需要设置`crossorigin``,参考[MDN][Gl...
在看JS面试题发现JS的eventloop 和OC中的Runloop结构类似,记录下 一、浏览器端JS的EventLoop 示意图(来源 @nekron) 定义: 宏任务:主代码、setTimeout、setInterval 、UI交互事件 微任务:Promise 、mutation observer 流程: 执行一次task 执行微任务(MicrotaskQueue)...
1、新建的项目启动黑屏或者window不存在 因为 iOS 13 下默认通过UISceneDelegate来管理窗口生命周期 需要在AppleDelegate.h中添加window: `objc @perperty (strong,nonatomic) UIWindow *window; ` 在AppleDelegate.m 中添加 `objc (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)la...
iOS 13 新特性 深色模式 -- 自动将 iOS 控件变成暗色调方案 SwiftUI -- 全新的框架,Swift声明式编程方法写UI 多个UI实例 -- 一个APP多窗口 SFSymbols -- 支持和提供SVG格式矢量图标库,大概1500个内置图标 将您的 iPad App 带入 Mac -- xcode提供选项,支持iPadAPP 迁移到MAc AR 增强 ARKit 3 -- 随着设备的升级,功能进一步加强 RealityKit -- 和AR配合,提供渲染、相机特效 Reality Composer -...
大厂流行APP 梳理一下大厂的APP 百度系 百度 百度贴吧 爱奇艺 百度网盘 百度地图 百度知道 百度文库 阿里系 支付宝 淘宝 钉钉 闲鱼 天猫 优酷 书旗 夸克 虾米音乐 UC 浏览器 高德地图 企鹅系 微信 微信阅读 微信企业版 QQ QQ音乐 QQ浏览器 腾讯视频 腾讯新闻 ...
1. 解析 info.plist 这块没有 加载启动页 建立沙箱,检查权限 2. Mach-O 加载 或者说是 dyld加载流程 设置运行环境,环境变量,获取当前运行架构 加载共享缓存 加载主执行文件,生成一个imageLoader实例 加载所有插入的库 link 主执行文件 (link过程会先loadLibraries ,定位内部(rebase)、外部(bind)制作引用,比如 字符串、函数) link动态库 notify(dyld_image_state_bound) => 触发 sNotifyObjCM...