
js知识
文章平均质量分 66
song_de
认认真真做事,踏踏实实做人.
展开
-
5种方法实现(a==1 && a==2 && a==3) == true
乍一看,这个咋能相等呢?深入思考就发现不仅可以相等,还有不少方法,下面就来讲讲这些方法都是如何实现的。原创 2022-11-17 10:44:23 · 577 阅读 · 0 评论 -
什么是video codec? video codec在实际业务的应用。
从字面意思来理解,codec是编码和解码的缩写。所以思考下为什么视频需要加密呢?最原始的电影通过每秒展示24胶片来达到电影的效果。现在的视频只是把胶片换成了数字化的图片。未经压缩的视频的数据量太大了,我们有必要进行很多压缩处理来存储视频,就更不用说通过网络传输视频的时候了。想象一下我们需要多少数据来存储未经压缩的视频:全色彩的高清视频(1920x1080)每一帧为 8,294,400 字节。按照典型的每秒 30 帧的传播速度,高清视频每秒钟会占用 248,832,000 字节(约 249 MB)。原创 2022-09-05 14:31:08 · 11811 阅读 · 0 评论 -
babel根据env集成icover plugin的一些总结
为提升项目测试效率,最近多个项目接入了项目效率工具icover,在这过程中也踩了一些坑,分享出来供其他有需求的同学参考。接入icover主要做两步工作:1,Modify babel config BABEL_ENV=test模式下使用@58fe/babel-plugin-icover babel插件2,Add build pattern 给icover 设置 BABEL_ENV=test 但是由于各个项目的打包构建,babel使用方式,babel版本大同小异,在接入的过程中我们需要熟系babel的配置使用。原创 2022-06-15 16:55:04 · 436 阅读 · 0 评论 -
ant design vue a-table实现拖拽排序
最近在把react项目使用vue3进行重构,vue项目组件库使用ant design vue。重构的功能包括:1,M站菜单配置列表的展示2,菜单列表新增3,菜单列表的编辑4,列表的拖拽排序阅读ant design vue文档看到有table拖拽功能,准备直接使用,此处埋下彩蛋一颗。顺利的重构了1,2,3功能之后,照着文档配置好拖拽属性发现不生效,翻阅源码没有找到对应的配置代码,原来拖拽功能属于付费内容,一年4999,ops~(ps:支持知识付费哈~但是我穷)那就只能自己手写功能4了梳理思路如下:1,鼠标移入原创 2022-06-10 11:23:29 · 7049 阅读 · 1 评论 -
很多人不知道的chrome实用调试方法
场景1:登录成功之后,前端根据后端的response跳转到不同的业务页面。假设跳转的方法使用的是:window.location.href = '业务页面地址'。然后前端开发小A发现,登录成功之后页面已经跳转走了,想在chrome network中看刚才登录接口的response看不了,被清空了~这时的小A要么加debugger在登录成功的回调里,要么用一个log上报,感觉很麻烦是不,chrome开发工具的跨页面加载请求保存功能这时候就派上用场了勾选preserve log,即使原创 2021-07-08 15:35:44 · 469 阅读 · 1 评论 -
使用缓存记忆加速你的JS代码
缓存记忆是一种能大幅提升你代码速度的通用技术,它先把一个耗时操作的结果缓存起来,当下次再去调用这个耗时操作的时候就不用再浪费时间计算直接给你结果。基于这种定义,我们提炼出几个使用缓存记忆的标准,根据这些标准我们再考虑要不要在代码里加上缓存记忆。1, 缓存应该主要用于加速那些开销巨大,耗时的函数。2,记忆主要针对非首次调用,如果你在相同的条件下反复的调用相同的函数,那么是时候考虑把它记住了。3,因为这个缓存的结果是放在内存里面,如果调用方法的条件变化无常,那么就没必要使用了。下面牛刀小试,原创 2021-05-13 20:31:41 · 291 阅读 · 0 评论 -
js构建动态对象数组
//定义对象value值数组,obj数组var value_arry=["aaa","bbb"],obj_arry=[];for(var i=0;ivar obj={"key1":"值1","key2":"值二"};obj["key3"]=arry[i];obj_arry.push(obj);}console.log(obj_arry);输出结果:[原创 2015-09-23 14:17:16 · 4501 阅读 · 0 评论 -
利用express中间件http-proxy-middleware代理前端跨域请求(包含get和post)
1,创建app.jsvar express = require('express');var path = require('path');var favicon = require('serve-favicon');var logger = require('morgan');var cookieParser = require('cookie-parser');var body...原创 2018-03-22 13:38:03 · 3954 阅读 · 0 评论 -
express 搭建简单前端开发环境
1,用express做静态资源服务器2,用http-proxy-middleware实现请求转发,解决开发中前端接口跨域的问题实现步骤:1,新建app.js内容如下:var express = require('express');var proxy = require("http-proxy-middleware");var cors = require('cors')var proxyPath...原创 2018-03-19 17:21:08 · 1134 阅读 · 0 评论 -
快应用开发
最近在做一个快应用的项目,做了一周上线了.现在把git地址贴出来供大家参考.https://github.com/xuesongde/quick_app喜欢的star一下原创 2018-05-21 14:50:55 · 470 阅读 · 0 评论 -
首屏,白屏时间如何计算??
首屏,白屏时间如何计算??做移动web页面,受移动网络网速和终端性能影响,我们经常要关注首屏内容展示时间(以下简称首屏时间)这个指标,它衡量着我们的页面是否能在用户耐心消磨完之前展示出来,很大程度影响着用户的使用满意度。怎么获取首屏时间呢?我们经常要先问自己:页面是怎么加载数据?A:加载完静态资源后通过ajax请求去后台获取数据,数据回来后渲染内容 在每个点打上一个时间...转载 2018-07-17 21:22:29 · 1928 阅读 · 0 评论 -
vue子组件监听父组件传值
vue父组件传值,在父组件修改值,通知到子组件,其实就是观察订阅者模式vue的实现采用了watch方法具体的写法如下:父组件<template> <load-list :param="param" cate="hide"></load-list></template>param是data函数里面的一个对象,子组件需要使用监听对象的watch写法...原创 2018-07-13 18:08:29 · 29636 阅读 · 1 评论 -
vue webpack打包优化
如果我们的 Vue 项目比较大.或者说项目中引入了许多第三方库,那么在执行 npm run build 构建项目的时候会极其的慢.比如我现在的项目就每次打包就要 83s。 下面是我整理的一些优化技巧,可以有效地提高打包速度。 一、配置 resolve.modules1,优化原理(1)webpack 的 resolve.modules 是用来配置模块库(即 nod...转载 2018-08-08 16:54:22 · 9344 阅读 · 2 评论 -
使用node完成文件自动拷贝
适用于项目中某些文件需要手动拷贝重命名场景;新建copy.js内容如下;node执行,缺少module就安装相关module;执行完成xxx1.js复制到xxx2目录重命名为xxx2.js;var fs = require("fs");//动态路径设置var path = require('path');var dynamic_path = path.resolve(__d...原创 2018-08-08 17:16:33 · 1466 阅读 · 0 评论 -
node watch监听目录文件变化执行相关操作
#!/usr/bin/env nodevar shell = require("shelljs"); //执行shellvar watch = require('watch'); //监测目录变化watch.watchTree('./scripts', function (f, curr, prev) { shell.exec("node ./r.js -o ....原创 2018-08-08 17:19:52 · 5099 阅读 · 0 评论 -
lodash API 和 es6 API相似用法总结
import _ from 'lodash';let a={'aa':'bb'}es6 Object.values(a) 等价于 _.values(a) 返回['bb'] IE不支持es6此APIes6 arry.includes(value) 等价于 _.includes(arry,value) 判断value是否在arry中 IE不支持es6此API...原创 2019-01-25 16:59:31 · 327 阅读 · 0 评论 -
VUE双向数据绑定原理
VUE借助Object.defineproperty()劫持对象的set个get方法实现了数据的双向绑定。看看这个简单的demo:var keyValue = 1;var observeObj = {};// param1:劫持的对象; param2:需要劫持的key值; param3:对象属性描述配置;Object.defineproperty(observeObj,'k...原创 2019-06-04 16:08:37 · 172 阅读 · 0 评论 -
JS操作cookie
什么是 Cookie “cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。” - w3school cookie 是访问过的网站创建的文件,用于存储浏览信息,例如个人资料信息。 从JavaScript的角度看,cookie 就是一些字符串信息。这些转载 2015-08-19 09:12:30 · 438 阅读 · 0 评论 -
js判断客户端设备类型
var bForcepc = fGetQuery("dv") == "pc";function fBrowserRedirect(){ var sUserAgent = navigator.userAgent.toLowerCase(); var bIsIpad = sUserAgent.match(/ipad/i) == "ipad"; var bIsIphoneOs = sU转载 2015-06-19 11:48:26 · 615 阅读 · 0 评论 -
js输出一个字符串中出现次数最多的字符
风吹鸡巴蛋打颤!!哈哈哈原创 2015-06-18 15:47:36 · 2232 阅读 · 0 评论 -
js给下拉框赋值
最近在用kendo 的UI做几个手机银行界面,但是kendo mobile原创 2014-06-23 20:17:46 · 33091 阅读 · 1 评论 -
js判断checkbox是否选中
使用js判断checkbox是否选中,看了几个帖子,什么原创 2014-07-02 17:32:03 · 2955 阅读 · 0 评论 -
动态treeTable jquery插件使用
先把jQuery treetable原创 2014-07-28 09:37:22 · 11799 阅读 · 9 评论 -
js控制页面返回和刷新
js 返回上一页和刷新2011-11-01 16:56:33 我来说两句 收藏 我要投稿1. Javascript 返回上一页history.go(-1), 返回两个页面: history.go(-2);2. history.back().3. window.history.forward()返回下一页4. window.history.go(返回第转载 2014-06-19 09:31:13 · 1340 阅读 · 0 评论 -
jqueryMobile Loader widget 控件改造
最近在用jqmobile 做一个混合APP项目时候用到 jqmobile1.4.3提供的Loader Widget控件,但是这个控件本身是一个loading弹出层,这个弹出层弹出之后,用户还是可以去点击按钮,重复发送请求,为了防止重复提交,我想了两种办法,1,在loading弹出层弹出之后,让按钮不可用.但是form表单里面的input还是可以点.2,在loading这一层和body层之间原创 2014-08-11 11:13:57 · 1901 阅读 · 1 评论 -
JS substr 和 substring区别
substr 和 substring都是JS 截取字符串函数,两者用法很相近,下面是两者的语法很示例:substr 方法返回一个从指定位置开始的指定长度的子字符串。stringvar.substr(start [, length ])参数stringvar必选项。要提取子字符串的字符串文字或 String 对象。start必选项。所需的子字符串的起始位置。字符串中的转载 2014-09-22 11:00:24 · 1051 阅读 · 0 评论 -
jqm page事件执行顺序图
jqm page事件执行顺序 看图:原创 2014-09-23 15:17:03 · 520 阅读 · 0 评论 -
html5中的Web Storage:sessionStorage和localStorage
html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。而localStorage用于持久化的本地存储,除非转载 2014-10-11 13:30:51 · 631 阅读 · 0 评论 -
编写高效的jQuery代码
在转载 2014-11-14 10:41:51 · 521 阅读 · 0 评论 -
JS匿名函数
一、什么是匿名函数?在Javascript定义一个函数一般有如下三种方式:函数关键字(function )语句:function fnMethodName(x) { alert(x);} 函数字面量(Function Literals):var fnMethodName = function (x) { alert(x);} Function转载 2014-10-21 13:03:14 · 623 阅读 · 0 评论 -
js闭包
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 Js代码 var n=999;转载 2014-10-21 13:11:19 · 504 阅读 · 0 评论 -
H5实现拍照并上传
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no" /> 测试拍摄 window.addEventListener("DOMCo转载 2015-01-13 16:33:18 · 12209 阅读 · 0 评论 -
webapp 开发的一些技巧
自Iphone和Android这两个牛逼的手机操作系统发布以来,在互联网界从此就多了一个新的名词-WebApp(意为基于WEB形式的应用程序,运行在高端的移动终端设备)。开发者们都知道在高端智能手机系统中有两种应用程序:一种是基于本地(操作系统)运行的APP;一种是基于高端机的浏览器运行的WebApp,本文将主要讲解后者。WebApp与Native App有何区别呢?Nat转载 2014-12-30 10:46:43 · 847 阅读 · 0 评论 -
HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解
HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth到底指的哪到哪的距离之完全详解scrollHeight: 获取对象的滚动高度。 scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离scro转载 2015-03-05 16:35:44 · 542 阅读 · 0 评论 -
js输出数组中不同项的个数
js输出数组中不同项的个数原创 2015-06-16 18:16:34 · 1211 阅读 · 0 评论 -
jq相关知识
JQuery 选择器、过滤器及JQ对象和DOM对象的互相转换一、JQuery与JavaScript1.JavaScript库 使用过JavaScriptDOM的人都应该知道(比如昨天的练习),使用JSDOM进行页面的操作是十分麻烦的。比如获取、修改及添加子节点等这些操作。如果操作一个复杂的页面呢?Ok,JavaScript库因此诞生了。目前比较常见的JavaScript库有转载 2014-07-14 15:02:15 · 1026 阅读 · 0 评论