0

轻量级Javascript全文搜索库——Lunr.js

介绍Lunr.js是个用于浏览器的轻量级 JavaScript 全文搜索引擎。它为JSON文档建立索引,并提供一个简单的搜索界面来检索与文本查询最匹配的文档对于一些小型的博客、开发者文档或 Wiki 网站来说,完全可以通过它实现站内离线搜索:为什么使用它?对于已经将所有数据存储在客户端中的Web应用程序,也能够在客户端上搜索该数据也是很有意义的。这样可以节省在服务器上添加额外的压缩服务。本地搜索索引将更快,没有网络开销,并且即使没有网络连接也将保持可用。Github目前Github上star数6.6khttps://github.com/olivernn/lunr.js简单示例var idx ...

阅读全文>>

0

JavaScript数组常用方法

1、数组去重function removeRepeat(arr){ var newArr = []; for(var i = 0; i < arr.length; i++){ if(newArr.indexOf(arr[i])==-1){ newArr.push(arr[i]); } } return newArr;}var arr = [1,2,3,4,2,1,4,3,3];var result = removeRepeat(arr)console.log(result); // [1, 2, 3, 4]2、找出...

阅读全文>>

0

Javascript运行机制深入

浏览器内核(渲染进程)浏览器的渲染进程是多线程的!包含了哪些线程(列举一些主要常驻线程):GUI渲染线程负责渲染浏览器界面,解析HTML,CSS,构建DOM树和RenderObject树,布局和绘制等。当界面需要重绘(Repaint)或由于某种操作引发回流(reflow)时,该线程就会执行注意,GUI渲染线程与JS引擎线程是互斥的,当JS引擎执行时GUI线程会被挂起(相当于被冻结了),GUI更新会被保存在一个队列中等到JS引擎空闲时立即被执行。JS引擎线程也称为JS内核,负责处理Javascript脚本程序。(例如V8引擎)JS引擎线程负责解析Javascript脚本,运行代码。JS引擎一直等...

阅读全文>>

0

JS的艺术,前端异常捕获技术大全。

前端异常捕获,技术大纲可疑区域增加 try...catch全局监控JS异常: window.onerror全局监控静态资源异常: window.addEventListener全局捕获没有 catch 的 promise 异常:unhandledrejectioniframe 异常:window.errorVUE errorHandler 和 React componentDidCatch监控网页崩溃:window 对象的 load 和 beforeunloadScript Error跨域 crossOrigin 解决作为一个前端开发人员,每次看到浏览器控制台信息里面红通通的报错信息是不是都很...

阅读全文>>

0

详解如何实现前端jquery中的ajax方法,看这一篇就够了

前言这篇文章主要聊一聊如何手写一个jquery的ajax方法,这是前端中的基础知识,也是一道非常经典的前端面试题!一步步手写ajax在web页面中与后端通信的顺序一般都是客户端向服务器发起请求,然后服务器再回复客户端,用于通信的工具就是ajax。如果你喜欢足球,你肯定知道荷甲联赛中也有一支豪门足球俱乐部叫阿贾克斯,名字一毛一样。ajax就像电话一样,将页面和服务器联系在一起,基本用法如下:图1从图1中我们可以看出$.ajax是一个函数,它的参数是一个对象,那么我们可以像如下这样定义:var $ = {}; // 模拟jquery对象$.ajax = function(options){ // ...

阅读全文>>

0

好看又好用,这 5 个国产 JS 开源项目在 Gitee 火了

JavaScript 作为「前端三件套」中至关重要的一员,在开源领域的地位也是毋庸置疑的,Gitee 上有超过 40 万个开源项目使用 JavaScript 开发,今天给大家推荐的 5 款是 Gitee 上最近最受欢迎的 JavaScript 项目。1.vue-mini-player基于 Vue 的一个轻量级 HTML5 视频播放组件,适配 PC 和移动端。项目地址:https://gitee.com/gotoschool/vue-mini-player2.breath-relaxer在线呼吸调节器,通过视觉反馈工具,来控制呼、吸、屏气,进而达到放松身心目的。项目地址:https://gite...

阅读全文>>

0

将分割的文件进行合并

将分割后的文件进行合并,还原成一个完整的文件本质其实就是文件的拷贝,只不过在拷贝的时候是追加文件而不是新建文件这个时候我们使用到的是字节流,就是将分割后的文件输入到程序,然后输出到文件也可以理解为多个输入流一个输出流package cn.jd.io;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.F...

阅读全文>>

0

Web开发之浏览器数据库存储解决方案的选择和使用

本文背景在我们的Web项目开发中常常会遇到一些数据的存储问题,因为有一些数据相对来说对于安全性要求比较低,在现代Web项目开发中大部分已经走向前后端分离的模式,一般通用的都是向前端提供rest api。我个人认为,虽然前后端分离的模式很好的解决了后端统一的问题,但是相对来说,如果大量的重复数据或者一些基础数据每次都通过请求服务器来说无疑是对服务器资源的一种浪费,既然浏览器提供了数据库,那么我们为什么不好好利用起来呢?常用前端数据库目前使用比较多的就是localStorage和IndexDB,这两种方案我相信大多数人用的比较多的还是前者,笔者目前在项目中使用的也是它,那么两者简单的来说会有哪些不...

阅读全文>>

0

面向纯JavaScript的OCR识别引擎——Tesseract.js

介绍Tesseract.js是流行的面向纯Javascript的OCR引擎的。该库支持100多种语言(中文支持),自动文本方向和脚本检测,用于读取段落,单词和字符边界框的简单界面。Tesseract.js可以在浏览器和具有NodeJS服务器上运行。Githubhttps://github.com/naptha/tesseract.js使用方式# For v2版本npm install tesseract.jsyarn add tesseract.js# For v1版本npm install tesseract.js@1yarn add tesseract.js@1可以配合webpack或者直...

阅读全文>>

0

JavaScript 中,5 种增加代码可读性的最佳实践

为了保证的可读性,本文采用意译而非直译。简介如果咱们关注代码本身结构及可读笥,而不是只关心它是否能工作,那么咱们写代码是有一定的水准。专业开发人员将为未来的自己和“其他人”编写代码,而不仅仅只编写能应付当前工作的代码。在此基础上,可读性高的代码可以定义为自解释的、易于人理解的、易于更改或扩展的代码。以下列表一些好编写方式,仅供参考,当然,如果你有更好的方式,欢迎留言。以下的方式只是提供一种角度,不代表就需要这样做,请勿抬扛1. 强类型检查用===代替 ==2.变量用知名其意的方式为变量命名,通过这种方式,当再次看到变量名时,就能大概理解其中的用意不要在变量名中添加额外的不需要的单词不要简写变量...

阅读全文>>