wengjq
wengjq
First of all, thank you for your contribution! 😄 New feature please send pull request to feature branch, and rest to master branch. Pull request will be merged after one...
[#3784](https://github.com/dependabot/dependabot-core/issues/3784) Is it a private gitlab to configure what parameter?
### 概念 能力检测,又可以称为特性检测,它的目标是识别浏览器的能力,它的基本模式如下: ```js if (object.property) { // 使用 object.property } ``` ### 例子 在浏览器中可以采用 JavaScript 检测是否支持 WebP ,对支持 WebP 的用户输出 WebP 图片,否则输出其他格式的图片。 ```js // 简化写法 function isSupportWebp() { var...
### 如何让秒杀、活动倒计时更“精确” #### 1、背景 前端页面倒计时功能在很多场景中会用到,如 mobi 手机端的欢迎页倒计时、商城功能的秒杀活动等,这些功能往往对时间的精确更高,下面会分享下常见的坑点及如何解决。 #### 2、现有实现存在的问题 用现有 mobi 手机端欢迎页倒计时为例,以下是功能截图。 代码如下: ``` javascript var second = 10; // 倒计时时间为 10 s var timer; var timer_div = $('#timer_div'); var...
#### 1、按钮必须具有可识别的文字 没有名称的按钮对于依赖屏幕阅读器的用户不可用。 建议: 对于 元素和具有 role = "button" 的元素: - 设置元素的内部文本。 - 设置 aria-label 属性。 - 将该 aria-labelledby 属性设置为屏幕阅读器可见的文本元素。 ``` Name Button label ``` 对于 的元素: - 设置 value...
#### 1、避免使用应用缓存 AppCache 已被废弃.考虑使用 service worker 的 [Cache API](https://developer.mozilla.org/zh-CN/docs/Web/API/Cache)。 #### 2、避免使用 console.time() 如果您使用 console.time() 测量页面的性能,请考虑改用 [User Timing API](https://www.html5rocks.com/en/tutorials/webperformance/usertiming/)。 其优势包括: - 高分辨率时间戳。 - 可导出的计时数据。 - 与 Chrome DevTools Timeline 相集成。在 Timeline...
### 前言 Lighthouse 是一个开源的自动化工具,用于改进网络应用的质量。可以将其作为一个 Chrome 扩展程序运行,或从命令行运行。 为 Lighthouse 提供一个审查的网址,它将针对此页面运行一连串的测试,然后生成一个有关页面性能的报告。目前测试项包括页面性能、PWA、可访问性(无障碍)、最佳实践、SEO。Lighthouse 会对各个测试项的结果打分,并给出优化建议,这些打分标准和优化建议可以视为 Google 的网页最佳实践。 ### 使用入门 运行 Lighthouse 的方式有两种: - 作为 Chrome 扩展程序运行 - 作为命令行工具运行。 Chrome 扩展程序提供了一个对用户更友好的界面,方便读取报告。命令行工具允许您将 Lighthouse 集成到持续集成系统。 1、下载 Google Chrome...
>开发产品功能的时候ui往往会给出虚线边框的效果图,于是乎,我们往往第一时间想到的是用css里的border,可是border里一般就提供两种效果,dashed或者dotted,ui这时就不满意了,说虚线太密了。废话不多说,下面直接给解决方案(参考css揭秘): div { padding: 1em; border: 1px dashed transparent; background: linear-gradient(white,white) padding-box, repeating-linear-gradient(-45deg,#ccc 0, #ccc 0.25em,white 0,white 0.75em); } >基本效果如下:  ### [在线演示CodePen Demo -- dottedBorder](https://codepen.io/wengjq/pen/XgEGZj?editors=1111) ### >以上的基本原理是通过两层线性渐变背景去覆盖,第一层是在padding-box容器内(及虚线边框的容器内的白色部分,如果换成border-box那肯定把虚线也覆盖了),用这一层去覆盖repeating-linear-gradient生成的条纹背景。具体的虚线的颜色和间距都可以通过repeating-linear-gradient生成的条纹背景去调整。最后给出 linear-gradient 支持的浏览器,要使用的话请权衡。...
## 1、javaScript的变量类型 ## (1)基本类型: 5种基本数据类型Undefined、Null、Boolean、Number 和 String,变量是直接按值存放的,存放在栈内存中的简单数据段,可以直接访问。 (2)引用类型: 存放在堆内存中的对象,变量保存的是一个指针,这个指针指向另一个位置。当需要访问引用类型(如对象,数组等)的值时,首先从栈中获得该对象的地址指针,然后再从堆内存中取得所需的数据。 >JavaScript存储对象都是存地址的,所以浅拷贝会导致 obj1 和obj2 指向同一块内存地址。改变了其中一方的内容,都是在原来的内存上做修改会导致拷贝对象和源对象都发生改变,而深拷贝是开辟一块新的内存地址,将原对象的各个属性逐个复制进去。对拷贝对象和源对象各自的操作互不影响。 例如:数组拷贝 //浅拷贝,双向改变,指向同一片内存空间 var arr1 = [1, 2, 3]; var arr2 = arr1; arr1[0] = 'change'; console.log('shallow copy:...
>参考原文:https://auth0.com/blog/four-types-of-leaks-in-your-javascript-code-and-how-to-get-rid-of-them/ >在本文中,我们将探讨客户端JavaScript代码中常见的内存泄漏类型。 我们还将学习如何使用Chrome开发工具找到它们。 ## 1、介绍 ## 内存泄漏是每个开发人员都要面临的问题。 即使使用内存管理的语言,也存在内存泄漏的情况。 内存泄漏是导致迟缓,崩溃,高延迟的根本原因,甚至会导致其他应用问题。 ## 2、什么是内存泄露 ## 实质上,内存泄漏可以定义为应用程序不再需要的内存,因为某种原因其不会返回到操作系统或可用内存池。编程语言有不同的管理内存的方式。这些方法可以减少泄漏内存的机会。然而,某一块内存是否未被使用实际上是一个不可判定的问题。 换句话说,只有开发人员才能明确是否可以将一块内存返回到操作系统。 某些编程语言提供了帮助开发人员执行此操作的功能。 ## 3、JavaScript的内存管理 ## JavaScript是垃圾回收语言之一。 垃圾回收语言通过定期检查哪些先前分配的内存是否“可达”来帮助开发人员管理内存。 换句话说,垃圾回收语言将管理内存的问题从“什么内存仍可用? 到“什么内存仍可达?”。区别是微妙的,但重要的是:虽然只有开发人员知道将来是否需要一块分配的内存,但是不可达的内存可以通过算法确定并标记为返回到操作系统。 >非垃圾回收的语言通常使用其他技术来管理内存:显式管理,开发人员明确告诉编译器何时不需要一块内存; 和引用计数,其中使用计数与存储器的每个块相关联(当计数达到零时,其被返回到OS)。 ## 4、JavaScript的内存泄露 ## 垃圾回收语言泄漏的主要原因是不需要的引用。要理解什么不需要的引用,首先我们需要了解垃圾回收器如何确定一块内存是否“可达”。 >垃圾回收语言泄漏的主要原因是不需要的引用。 **Mark-and-sweep**...