首页 文章 精选 留言 我的

精选列表

搜索[前端工程化],共10003篇文章
优秀的个人博客,低调大师

前端特殊错误,Bug汇总

一直在做移动端的网页,遇到的各种问题感觉丝毫不下于PC端的各种浏览器兼容,这里总结一下,也是对自己的一个知识梳理 JavaScript UC白屏问题 错误表现:网页在微信和QQ内置浏览器访问正常,但是UC和大部分的手机自带浏览器访问页面会出现白屏,打印调试后发现,JS代码一句都没有执行。 解决:这种问题是因为使用了浏览器不支持的语法导致的,第一种是ES6没有转换为ES5。但是很多人使用了Babel转义后依然会出现这种情况,这就是第二种错误:使用了浏览器不支持的Api。某些函数方法是不会被Babel转义的,但是浏览器依然不支持。例如Object.freeze()冻结函数,使用了这个方法后即使进行Babel转义,UC和自带浏览器中也会出现白屏。 // 特意去babel官网去测试了一下,只是比原代码多加了一个 'use strict' Object.freeze({ a: 0 }) // => "use strict"; Object.freeze({ a: 0 }); 这样的 Api 应该有很多,如果项目中出现了这个错误,不知道错误具体出现在哪儿,那就只能用二分法慢慢排除了。 UC浏览器返回上一页不刷新页面 表现:这个属于浏览器的特殊行为了,特点是UC浏览器返回上一页时不会更新页面。 解决: // 第一种方法,强制刷新页面,当从pageB返回到pageA时,刷新页面 //(pageA => pageB => pageA => upDated) $(window).on('pageshow', function (evt) { setTimeout(function () { if (evt.persisted) { location.reload(true) } }, 10) }) // 第二种方法,在跳转到新的页面前把页面回归到想要的状态 //(pageA => upDated=> pageB) // 在pageA 跳转到pageB前执行 btn.onclick = function() { setTimeout(function() { upDated() // 更新待会返回时想要的页面的状态 }, 0) location.href = "{{跳转的域名}}" } 移动端浏览器左右滑动导致的BUG 表现:现在的手机浏览器很多都自带左右滑动前进后退的,但是如果你有一个轮播图或其他一些触发touch事件的元素,有时就会和浏览器自带的行为有冲突。 解决: 在touchstart中加入e.preventDefault()可以阻止浏览器的自带行为。然后会发现click事件无法触发了,在移动端,浏览器认为执行了touchstart和touchend才算一次完整的点击,但是由于在touchstart中加入了e.preventDefault()导致点击事件不能触发,这时如果要出发click事件可以把e.preventDefault()放入touchmove事件中。就可以完美执行了。 但是在UC浏览器下,使用了e.preventDefault()后有时还会触发UC自带的行为,需要注意。。。 再附一篇相关博文 移动端touch事件影响click事件以及在touchmove添加preventDefault导致页面无法滚动的解决方法 CSS IOS点击不触发事件回调函数 错误表现:在IOS中,点击非a标签的元素无法触发点击事件。 解决:这种情况出现在动态添加的Dom节点上,即使使用了事件代理,或者在Dom被添加后进行绑定都不会触发元素绑定的JS事件。解决方法是给Dom元素添加样式 cursor: pointer; 这样就可以正确触发事件了。 IOS下为元素添加overflow样式滑动变卡 错误表现:在IOS中,元素添加了overflow样式后,滑动惯性会被取消,导致滑动不顺畅。 解决:可以给元素添加-webkit-overflow-scrolling: touch;样式,解决一切滑动不顺畅问题,但是IOS下使用-webkit-overflow-scrolling: touch;会导致另外的Bug,position定位的元素如果和设置了overflow的元素是兄弟关系或父子关系,会导致定位元素也会随着一起滚动,需要注意。 系统版本过低导致flex布局失效 错误表现:移动设备的系统版本过低时,flex布局失效 解决:设置display: flex;样式的子元素,必须是块级元素,否则失效(必须设置display: block;)。还有一点要注意,flex-wrap低版本的系统是完全不支持的,可以用display: inline-block;替代。 原文链接:http://blog.csdn.net/qq_25243451/article/details/78811776

优秀的个人博客,低调大师

多租户舆情搜索的工程化交付:隔离、加速与证据可见性

企业落地舆情系统时,搜索体验往往比采集数量更早暴露架构问题。不同团队有不同的关键词、权限和数据保留要求;同一个查询可能需要跨文章、事件、来源和报告证据;高峰期的大范围检索又容易影响实时告警。若只在单一搜索接口上不断增加过滤条件,最终会出现慢查询、越权风险和无法解释的结果。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册