
js
web_xyk
这个作者很懒,什么都没留下…
展开
-
js获取windows操作系统版本
var userAgentInfor = navigator.userAgent.toLowerCase(), windowsVersion = userAgentInfor.substr(userAgentInfor.indexOf('windows nt ') + 11,4), nameVersion;switch(windowsVersion){ case原创 2016-08-09 17:27:23 · 2130 阅读 · 0 评论 -
Expires和max-age
Expires和max-age都可以用来指定文档的过期时间,但是二者有一些差别1.Expires在HTTP/1.0中已经定义,Cache-Control:max-age在HTTP/1.1中才有定义;2.max-age 指定的是从文档被访问后的存活时间,这个时间是个相对值(比如:3600s),相对的是文档第一次被请求时服务器记录的Request_time(请求时间)3.Expires 指定一个绝对...原创 2018-04-14 15:37:40 · 1185 阅读 · 0 评论 -
js 鼠标事件
一、click、mousedown、mouseup click事件只能监听鼠标左键://点击鼠标左键得到:'onclick',右键无效果document.onclick = function (e) { console.log('onclick')} click、mousedown、mouseup触发顺序:document.onclick = func...原创 2018-04-30 12:01:20 · 316 阅读 · 0 评论 -
js计算两经纬度点之间的距离
function caculateLL(lat1, lng1, lat2, lng2) { var radLat1 = lat1 * Math.PI / 180.0; var radLat2 = lat2 * Math.PI / 180.0; var a = radLat1 - radLat2; var b = lng1 * Math.PI ...转载 2018-04-14 10:36:50 · 3465 阅读 · 1 评论 -
js节流与防抖,防止重复提交、防止频繁重复点击
一、节流、防止短时间多次提交操作现有一提交按钮<button id="submit">提交</button>点击后提交表单信息。但是经常会出现: 1.不小心点了多次,就提交了多次 2.网络卡顿的时候网页没反应,用户频繁点击的情况// 即这种写法:var subBtn = document.getE...原创 2018-05-02 14:41:13 · 22126 阅读 · 3 评论 -
JSON.parse()和JSON.stringify()
JSON.parse() 用于从一个字符串中解析出json数据,如:var str = '{"ie":"兼容ie8+(ie8 标准模式)"}';console.log(JSON.parse(str))输出: { ie: "兼容ie8+(ie8 标准模式)",} JSON.stringify() 用于把json数据转换成字符串,如:var obj = {a:1,...原创 2015-08-12 10:09:28 · 435 阅读 · 0 评论 -
js/javaScript通过setTimeout做动画和需要注意的点
一、用setTimeout做动画时每帧动画时间间隔设置为多少合适? 因为目前大多数电脑显示器的刷新频率是60HZ,大多数浏览器都会对页面重绘操作加以限制,使其不超过显示器的重绘频率;因为即使超过那个频率用户体验也不会有提升。因此,最平滑动画的最佳循环时间间隔是1000/60s 约为16.7ms 所以一般用setTimeout做动画时间间隔设置为16.6ms是最佳的:setTimeout...原创 2018-05-10 15:37:25 · 2171 阅读 · 0 评论 -
js判断两个值是否相等
方法: function looseEqual(a, b) { if (a === b) { return true } var isObject = function (obj) { return obj !== null && typeof obj === 'object' }; var isObjectA =...原创 2018-07-02 16:58:37 · 9623 阅读 · 2 评论 -
实现dtGrid列总计功能
先看效果 1.在jquery.dtGrid.js中添加根据列id计算列总计代码1.新增总计列id数组$.fn.DtGrid.defaultOptions = { grid : { lang : 'en', totalCountColById:[], //新增总计列id数组,格式为数组,支持多列总计 ajaxLoad : true, loadAll...原创 2018-07-19 16:50:32 · 891 阅读 · 0 评论 -
js截取字符串的三种方法,slice、substring、substr的区别
一、slice()和substring()都有两个参数start和end ,获取字符串从start(包含)到end(不包含)位置的字符不过start和end都不是必填的(不填:start默认为0,end默认为字符串长度length),参数个数不同具体对应情况如下:注:字符串的索引是从0到length-11.如果不写参数表示返回当前字符串(截取全部),start为0,end为字符串长...原创 2018-08-01 19:14:04 · 7758 阅读 · 0 评论 -
图片预加载完成再执行动画,解决动画执行时图片还未加载完成的问题
一、场景1.多图片衔接动画2.鼠标指向图片时,图片翻转显示另一张图等等 二、实现方式利用 Image()构造函数创建一个屏幕外图片对象,之后将该对象的src属性设置成期望的URL,由于图片元素并没有加载到文档中,因此,它是不可见的,但是浏览器还是会加载图片并将其缓存起来。这样以来,当页面中再有用到该图片的时候就能很快从缓存中加载。就不会出现加载慢导致的图片显示不出来...原创 2018-08-07 17:11:10 · 3150 阅读 · 1 评论 -
js正则实现数字格式化,每三位加逗号
var num = '10000000000000', reg = /(?=(\B)(\d{3})+$)/g;//每三位加','号console.log(num.replace(reg,','))//10,000,000,000,000//其他符号只需更改replace()第二个参数即可 ...原创 2018-09-12 17:19:51 · 6583 阅读 · 1 评论 -
js大数相加
function sumStrings(a,b) { a = '0' + a; //加0是因为两个最大的位数相加后可能需要进位 b = '0' + b; a.length - b.length > 0 ? (b = Array(a.length - b.length+1).join('0')+b) : (a = Array(b.length - a.le...原创 2018-09-12 17:57:13 · 769 阅读 · 0 评论 -
session,cookie,登录超时原理浅析
1.cookie保存在客户端,session保存在服务器端,通过这两个东西提供的信息,服务器端进行相关操作来判断登录是否超时2.cookie目的可以跟踪会话,也可以保存一些用户想要保存的东西(登录时,是否勾选保存账号密码)。session用来跟踪会话打开浏览器第一次请求的时候,服务器会自动为其创建一个session,并赋予其一个sessionID,发送给客户端的浏览器。以后客户端接着请求本应用中其...原创 2018-04-14 15:16:44 · 5942 阅读 · 0 评论 -
js对象深度拷贝、Object.assign()、Object.assign()复制非对象
把对象target1, target2,...合并到对象origin上 Object.assign(origin, target1, target2, ....);1.合并的是对象var origin = { a: 'a'},target1 = { a:'a1' b: 'b'},target2 = { c: 'c'}//执行O...原创 2018-03-11 14:30:57 · 9361 阅读 · 0 评论 -
js defineProperty,对象定义属性
对象是由多个名/值对组成的无序的集合var obj = {test: 'hello'};1.对象的已有的属性添加特性描述Object.defineProperty(obj,'test',{//是否可以删除(是否可以delete删除)目标属性或是否可以再次修改属性的特性//(writable,configurable,enumerable)。ture可以,默认false...原创 2018-02-23 17:34:15 · 566 阅读 · 0 评论 -
js重写toFixed方法(兼容负数),js四舍五入保留小数不准确
最近因为项目经常要用到四舍五入保留两位小数,但是toFixed()方法却经常出现不正确的情况,即四舍六入五凑偶(4以下舍去,6以上进位,5只有前面一位是偶数的时候才进位,奇数不进位)最重要的是网上搜出来的方法都是针对正数的,对于负数还是存在问题,在这里进行了补充自己写了一个方法:Number.prototype.toFixed = function (s) { var ...原创 2016-08-09 17:42:30 · 6291 阅读 · 5 评论 -
js 不同页面间传递值并取值,html不同页面间数据传递
以前没用到过页面间传递参数再从后台获取数据,自己总结了一些。先说需求:现在有页面pageA.html 和页面pageB.html,页面pageA.html中有一事件,当这个事件触发时会打开页面pageB.html。而且页面pageB.html中的一些内容需要根据pageA.html 中的一些值来判断显示哪些内容或者做一些操作。方法一:(1) pageA.html 中的事件为 windo...原创 2015-08-22 09:51:23 · 20127 阅读 · 1 评论 -
jqGrid怎么设置初始化页面时不加载数据(不向服务器请求数据)
最近做一些表格一直用到jqGrid,今天遇到一个问题:1.就是页面加载的时候数据不显示,点击搜索才根据请求从服务器返回并显示内容.2.默认不从服务器请求数据(不然在开发者工具下会显示请求不到数据的报错)通常的解决方法就是直接给$("#jqGridTable").jqGrid({})套一个function,但个人感觉这并不是最好的方法。我建议可以用:1.初始化$("#jqGri...原创 2015-08-25 16:03:30 · 10058 阅读 · 1 评论 -
js获取子元素,原生获取子元素
js原生获取子节点:1.封装成公用方法,以便于复用.function deleteTextNode(id) {var _elem = document.getElementById(id), _child = _elem.childNodes, i = 0; for (; i < _child.length;...原创 2015-11-27 15:26:53 · 3959 阅读 · 0 评论 -
js运算符优先级
优先级从上到下依次递减:原创 2018-02-23 10:08:25 · 252 阅读 · 0 评论 -
js获取今天周几
1.初级方法 var week = new Date().getDay(),str='今天是星期'; if(week === 0){str += '日'}... 或者switch.. 2.中级方法 var week = new Date().getDay(), arr = ['日', '一', '二', '三', '四', '五', '六'], s...原创 2018-02-23 10:40:24 · 16359 阅读 · 0 评论 -
iframe 详解,js在父窗口中获取iframe中的元素,jquery在父窗口中获取iframe中的元素
1.frameborder 是否显示边框,1(yes),0(no)2.height/width 宽高建议通过css来设置3.name:框架的名称,window.frames[name]时专用的属性4.scrolling:框架的是否滚动。yes、no、auto5.src:内框架的地址,可以使页面地址,也可以是图片的地址重要特性:1.同域下能自由操作iframe和父框架,跨域只能实现页面跳转2.获取页...原创 2018-02-23 10:50:07 · 1661 阅读 · 0 评论 -
js代码执行过程,js预编译,变量声明提升,函数体整体提升
js代码执行过程1.先扫描全局语法是否有错误,有错则报错并停止扫描2.无错则进行预编译过程 创建全局GO对象 global object 对var声明的变量进行声明提升但不赋值,放入GO对象中 对函数体整体进行提升,放入GO对象中3.函数执行时 创建AO对象 activation object 找形参和变量声明,将变量和形参名作为AO属...原创 2018-02-23 11:56:59 · 807 阅读 · 1 评论 -
判断JSON数组是否已包含某个对象,获取选中checkbox的值,删除json数组中的对象
需求:选中checkbox时需要把该元素的name,code,value等值保存以备用,取消选择的checkbox元素需要删除保存的值实现:htmljs // 对JSON数组进行判重,key表示以对象中的某个字段来作为判断重复的依据,value表示重复的值Array.prototype.indexOfJson = function (key, value) {...原创 2018-02-23 11:35:42 · 3415 阅读 · 0 评论 -
js 给元素绑定回车事件
经常会看到登录页面输入完账户密码,回车就登录了.实现方法:1.jquery方法$("#focus")为获取id为focus的元素$("#focus").keypress(function(event){ if(event.which === 13) { //点击回车要执行的事件 }})2.js方法var focus = document....原创 2015-11-27 15:41:29 · 8101 阅读 · 0 评论 -
获取当天日期,获取之前之后的日期,前后几个月、前后几天、几小时
注:参数解释 symbol 时间之间的分隔符例如 '-'、'/'; n 数字; 当前时间:2016-11-261.获取今天的日期 function getTodayDate(symbol) { symbol = symbol || '-'; var nowDate = new Date(), year = nowDate.getFullYear(...原创 2018-02-23 16:56:41 · 1339 阅读 · 2 评论 -
获取浏览器窗口相对于屏幕的位置,获取可视窗口的宽高、元素的样式或伪元素的样式
获取浏览器窗口相对于屏幕的位置 var leftPos = typeof window.screenLeft === "number" ? window.screenLeft : window.screenX, topPos = typeof window.screenTop === "number" ? window.screenTop : win...原创 2018-02-23 09:59:29 · 875 阅读 · 0 评论 -
排序方法,合并排序 、快速排序
1.合并排序 function mergeSort(myArray) { if (myArray.length < 2) { return myArray; } var middle = Math.floor(myArray.length / 2), left = myArray.slice(0, middle), right = ...原创 2018-02-23 17:20:47 · 497 阅读 · 0 评论 -
正则括号,正则手机号校验,整数、两位小数正则
* 零次或多次匹配+ 一次或多次? 0次或1一次匹配在正则表达式中有3种类型的括号:方括号 "["、圆括号"("和花括号"{" 。方括号"[" 内是需要匹配的字符,花括号"{" 内是指定匹配字符的数量。圆括号"(" 则是用来分组的。插入符号 "^" 表示正则式的开始。美元符号"$" 表示正则式的结束。下表按从高到低的顺序包含了正则表达式运算符的优先原创 2018-02-23 10:27:11 · 411 阅读 · 0 评论 -
图片上传预览,图片上传之前本地预览
HTML5 file API可以让图片在上传之前直接在浏览器中显示,通常使用FileReader方法,代码示意如下:<!DOCTYPE><html><head><meta charset="utf-8"><style>.imgCom{ width: 300px; height: 300px; bor...原创 2018-02-23 17:27:19 · 678 阅读 · 0 评论 -
Vue3.0简介
阅读不怎么舒适,参看我的语雀原文:https://www.yuque.com/xiaocao-4xvac/zxcdyp/qepwd0更快,初始渲染/更新最高可提速一倍1.virtual dom实现完全重构2.结合模板编译提高运行时性能。减少运行时开销例如:模板里很多没有变动的地方,但是virtual dom 不可避免的生成节点对它们进行比对。可以通过在编译时对模板进行分析,来减少这...原创 2018-11-30 18:04:27 · 3212 阅读 · 0 评论