原因:js按照2进制来处理小数的加减乘除,在arg1的基础上 将arg2的精度进行扩展或逆扩展匹配,所以会出现如下情况.javascript(js)的小数点加减乘除问题,是一个js的bug如0.3*1 = 0.2999999999等,下面列出可以完美求出相应精度的四种js算法function accDiv(arg1,arg2){ var t1=0,t2=0,r1,r2; try{t1=arg1.toString().split(".")[1].length}catch(e){} try{t2=arg2.toString().split(".")[1].length}catch(e){} with(Math){ ...
在SharePoint解决方案中使用JavaScript (0)随着Web前段技术(JavaScript/HTML5)的日益发扬光大,在Web应用程序中,我们开始更多的使用JavaScript。很多以往是放在服务器上运行的逻辑,现在都开始逐渐的向前段转移。这种趋势不需要作者多说,只要是Web开发人员(包括SharePoint工程师),都会有所体验。而在SharePoint平台,这种前端化的趋势也是相当明显的。当我们构建SharePoint解决方案的时候,JavaScript代码的数量在不断的增多,而...
学习网址:http://layer.layui.com/下载地址:http://res.layui.com/download/layer-v2.1.zip我们提到的基础参数主要指调用方法时用到的配置项,如:layer.open({content: ‘‘}), layer.msg(‘‘, {time: 3}), 其中的content和time即是基础参数,以键值形式存在,基础参数可合理应用于任何层类型中,您不需要所有都去配置,大多数都是可选的。而其中的 layer.open、 layer.msg、 就是内置方法。但我们通常还会在...
1 前言移动端网页,发现ios平台的iphone或者ipad,网页可以上下左右移动,而Android版则不会。仅作为记录使用。2 代码var mo=function(e){e.preventDefault();}; function stop(){document.body.style.overflow=‘hidden‘; document.addEventListener("touchmove",mo,false);//禁止页面滑动 } //直接默认不让滑动 stop();/***取消滑动限制***/ function move(){document.body.style.overflow=‘‘;//出现滚动条document.re...
1、JavaScript异步编程的两个核心难点异步I/O、事件驱动使得单线程的JavaScript得以在不阻塞UI的情况下执行网络、文件访问功能,且使之在后端实现了较高的性能。然而异步风格也引来了一些麻烦,其中比较核心的问题是:1、函数嵌套过深JavaScript的异步调用基于回调函数,当多个异步事务多级依赖时,回调函数会形成多级的嵌套,代码变成 金字塔型结构。这不仅使得代码变难看难懂,更使得调试、重构的过程充满风险。2、异常处理回调...
Eclipse中jsp、js文件编辑时,卡死现象解决汇总使用Eclipse编辑jsp、js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲。将所有用过的方法罗列如下: 1、取消验证windows–>perferences–>validation把 除了manual 下面的全部点掉,build下只留 classpath dependency Validator 2、关闭拼写检查windows–>perferences–>general–> editors->Text Editors->spel...
现在移动web app越来越热门了,许多公司开始尝试使用angular、react、vue等MVVM框架来开发单页架构的web app。但在开发web app时,如果希望页面的导航体验也接近原生应用,那一般都会遇到这两个问题: 识别前进后退行为后退时恢复之前的页面笔者开发了一个基于vue与vue-router的导航库vue-navigation,来帮助开发者来解决这些问题,下面是问题的解决思路。 识别前进后退 先说第一个问题。和原生app不一样,浏览器中主要有这几个限制...
相信每一个开发者都知道缓存的重要性。从头至尾有缓存的后台(memcached,xcache等。) 来减轻db的压力。对内容分发网络(CDN)缓存中希望你的浏览器缓存那些不止一次的加载资源。当然, 有客户端缓存,所以你不要重复昂贵的操作(即使是算法或大量的运算)。 这是介绍的是一个不错的javascript的方面的客户端解决方案,可选配支持HTML5本地存储器. Starting Simple 代码如下:function CacheProvider() { // values will be stored here t...
细节决定成败!浏览器缓存的意义在于提高了执行效率,但是也随之而来带来了一些问题,导致服务端修改了js、css,客户端不能更新 方法一 生成随机数字 代码如下:<script type=”text/javascript“ src=”/js/test.js?+Math.random()“></script> 缺点,浏览器缓存失去意义,每次都动态加载。 方法二 版本号控制,设置全局变量,每次发布前版本号加1 代码如下:<script type=”text/javascript“ src=”/js/test.js?v=<%=v%>“></sc...
解决方法一:IE6 Hack脚本 代码如下:<script> if(navigator.appName == "Microsoft Internet Explorer"){ var b_version=navigator.appVersion; var version=b_version.split(";"); var trim_Version=version[1].replace(/[ ]/g,""); if(trim_Version=="MSIE6.0"){ ;//alert("IE 6.0"); try { document.execCommand("BackgroundImageCache", false, fix); }catch(err){ } } } </script> 解决方法二:IE6 Hack注释 代码如下:<!--...
下面通过文字说明给大家详解Nginx上传文件全部缓存解决方案。 因为应用服务器(Jetty)里面实现了上传时写了进度条。经过缓存。就没法读取到进度了。此外,在Nginx处缓存文件,也降低了传输效率。 nginx采用1.5.6。 后端采用nodejs+formidable的方式接受上传文件,本问题的对应与采用什么样的后端没太大关系,这里只是交代一下。 问题: 在前端页面上将文件上传,nginx没有将每一块收到的文件数据块转发给后端,而是全部缓存了下来...
单页面应用中的路由缓存问题通常我们在进行页面前后退时,浏览器通常会帮我们记录下之前滚动的位置,这使得我们不会在每次后退的时候都丢失之前的浏览器记录定位。但是在现在愈发流行的SPA(single page application 单页面应用)中,当我们从父级页面打开子级页面,或者从列表页面进入详情页面,此时如果回退页面,会发现之前我们浏览的滚动记录没有了,页面被置顶到了最顶部,仿佛是第一次进入这个页面一样。这是因为在spa页面中的...
feb-alive github地址 体验链接 使用理由 开发者无需因为动态路由或者普通路由的差异而将数据初始化逻辑写在不同的钩子里beforeRouteUpdate或者activated开发者无需手动缓存页面状态,例如通过localStorage或者sessionStorage缓存当前页面的数据feb-alive会帮你处理路由meta信息的存储与恢复为什么开发feb-laive?当我们通过Vue开发项目时候,是否会有以下场景需求? /a跳转到/b后退到/a时候,希望从缓存中恢复页面再次跳转到/b时,...
feb-alive github地址 体验链接 Vue页面级缓存解决方案feb-alive (上) 在剖析feb-alive实现之前,希望大家对以下基本知识有一定的了解。 keep-alive实现原理history apivue渲染原理vue虚拟dom原理feb-alive与keep-alive差异性1. 针对activated钩子差异性keep-alive配合vue-router在动态路由切换的情况下不会触发activated钩子,因为切换的时候组件没有变化,所以只能通过beforeRouteUpdate钩子或者监听$route来实现数据更新,而fe...
缓存对于前端页面来说,是加速页面加载的利器之一,但也同时带来了很多问题,比如新版本发布之后,怎么替换客户端上的缓存文件呢?大家一般的的解决方案主要有以下几种形式, 一般情况1、添加版本号,在静态资源文件的引用链接后面添加版本号,这样每次发布的时候更新版本号,就能让叫客户端加载新的资源文件,避免再次使用缓存的老文件,如 <script src="//m.test.com/build/activity/js/commons.js?v=20170608"></script>2、文件...