您的浏览器不支持JavaScript或者JavaScript的运行被您禁止了。
浅谈项目中node和依赖的node包的版本管理
这是最近才注意的一个问题。之前在上一家公司的时候,有个项目组的项目,经常发生有的人的电脑里安装项目依赖后无法启动项目的问题,然后每每都是让他从别的同事那里把node_modules文件夹打包拷贝过来,我刚去那个项目组的时候也碰到了这个问题,也是从别的同事那里拷贝了一份node_modules文件夹才能正常跑项目的,后来经过尝试发现好像如果我将npm命令的版本降低到2+再安装项目依赖的话就能正常跑了,但是这个显然是个很奇葩的现象,另外需要说的是他们那个项目也有package-lock.json这个文件的,这个项目因为不是一开始就在跟的项目,我也搞不拎清究竟是哪里出了问题。但是node包的版本管理依旧很重要,不管理的话更容易发生类似这样的问题。...
暂无评论
几个eslint插件的介绍
ESLint支持第三方插件。在使用这些第三方插件前,你需要先使用npm来安装它们。要在eslint配置文件中配置这些插件,需要在配置文件中添加一个“plugins”根属性,其值即为由这些插件名(插件名前面的“eslint-plugin-”前缀可以省略)构成的字符串数组。 说明:由于Node里require函数的限制,全局安装的ESLint只能使用全局安装的ESLint插件,项目里安装的ESLint只能使用项目里安装的ESLint插件。
暂无评论
Enable jqgrid to do/cancel selecting only selectable items
I had this requirement these days: We have a table with many rows among which some are selectable and some are not selectable, and there is also a selecting-all button which should support do/cancel selecting all selectable rows. But after glancing over the old project, I found no similar ready-made code, so I search for this by Baidu, and found solution like below (modified and beautified):
暂无评论
JS原型与原型链
JS中,对象分为普通对象和函数对象两种,Object和Function是JS自带的函数对象。凡是通过new Function()的创建的对象都是函数对象,其他的都是普通对象。 每当定义一个对象(函数)时,对象中都会包含一些预定义的属性。其中,函数对象会有一个prototype属性,其值就是我们所说的原型对象(普通对象没有prototype,但有__proto__属性;函数对象同时含有prototype和__proto__属性)。注意__proto__这里proto前后分别都是两个下划线,不是一个。
暂无评论
promise的使用
不像旧回调风格代码,promise可以确保下面这些特性: 回调不会在当前事件循环结束之前被调用; 通过.then追加的回调函数在异步操作结束(成功或失败)之后会被调用,即便这个.then是在异步操作已经被resolved之后追加的; 可以通过多次追加.then来添加多个回调函数,这些回调函数会按照被添加的顺序独立执行。 不过promise的最直接的好处还是可链式使用。
暂无评论
loadScripts方法
使用方法很简单,碰到有js文件依赖的时候,这样使用ready方法: <pre> ready([ '../assets/js/jquery.validate.js', ], () => { // 这时依赖的js脚本文件已经加载完毕了,document ready后要执行的代码放在此处 }); </pre> 如果没有js文件依赖的话,这样使用ready方法: <pre> ready(() => { // document ready后要执行的代码放在此处 }); </pre>
暂无评论
一种字符串拼接的高效方法
经过在Chrome浏览器多次尝试,总的来说,testByForLoop1方法(用了ES6字符串模板的for循环)耗时最长,testByForLoop2方法(没用ES6字符串模板的for循环)耗时其次,testByArrayJoinMethod方法(利用了数组的join方法)耗时最短,它们的耗时在数组长度越长时越是差异显著。尤其是testByArrayJoinMethod方法简直是效果拔群。
暂无评论
FormData的使用及请求头分析
XMLHttpRequest Level 2添加了一个新的接口FormData.利用FormData对象,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,我们还可以使用XMLHttpRequest的send()方法来异步的提交这个"表单".比起普通的ajax,使用FormData的最大优点就是我们可以异步上传一个二进制文件.
暂无评论
发布静态文件到服务器上的简化操作
Of course, you can use a client tool such as FileZilla to deploy your static files to the server. But you will certainly feel tired in the end if you need to repeat this work almost every day in case your target server is for test purpose. For me, I used webpack for local development, when I want to deploy something to the test server, I need to execute command "npm run build" first and then "npm run deployToTestServer", it's already very convenient, but things can be even convenient with only one command needed to type ^_^.
暂无评论
微信跨公众号支付功能开发总结
用户在支付页面点击我们页面里的支付按钮,然后前端使用微信跳转地址跳转到微信pay.example.com开头的一个后端提供的接口上去,这个时候相当于对这个后端接口发起了一个get请求,服务端根据微信在接口后面追加的code查询参数来获取微信号A的用户在微信号B中对应的openid(用户无需关注微信号B),然后服务端在响应前端get请求时进行重定向返回到用户先前访问的支付页面并在新的url后面追加openid参数参数(微信号A的用户在微信号B中的openid),然后前端页面检测url中是否带有openid来判断是否需要通过js自动触发请求到服务端查询一些微信统一支付的参数来在客户端调启微信支付控件。大概就是这么个意思,实际操作中我们会对接口追加一些诸如告诉服务端重定向要定向到的地址,支付页面所在订单的id之类的参数。下面这种吊起维系支付控件的方式是不需要经过微信JSSDK授权的,两个不是一回事,因为用的不是微信JSSDK里的支付API。
暂无评论
1 2 3 4 5