OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

ourjs

用JavaScript测试图像上两点之间的距离

JavaScript by ourjs 1536931523667
用浏览器原生支持的JavaScript,可以实现一个简单的测量图像两点之间距离的方法。基本原理是记录下 两次鼠标点击的位置。然后计算出距离,按F12,在console中粘入以步代码即可测试。

Redis/Python被要求更改Master/Slave程序接口名称和描述

分享 by ourjs 1536732023710
Master/Slave 是一个在计算机编辑中广泛使用的术语,在Redis用来描述主/从进程。而有些人认为 master-slave 术语被认为具有侵犯性,所以出现了很多呼吁修改的声音。随着这些作者妥协,可能有越来越越的语言将被要求移除Master/Slave相磁程序接口代码和描述,比如MySQL/ PostgreSQL/ Ruby/ Jenkins 等。

程序员疑似将MySQL用户名密码上传至Github,导致华柱1.3亿条开房数据泄漏

分享 by ourjs 1535469149551
据FreeBuf报道,8月28日早上6点,暗网中文论坛中出现一个帖子,声称售卖华住旗下所有酒店数据,数据标价8个比特币,约等于人民币37万人民币,数据泄露涉及到1.3亿人的个人信息及开房记录。而经过媒体报道之后,该发帖人称要减价至1比特币出售。
据网友分析,华住某程序员将内部CMS管理系统的部分代码上传到自己的 github 上,可能是无意附带了数据库配置信息,导致被脱库,数据全部盗走。

JavaScript运算出现很多小数导致运算不精确的问题,用toFixed解决

JavaScript by ourjs 1535369346445
最近发现一个JS运算的一个问题,某些小数运算会出现类似无限循环的小数

var fee = 19.99
var all = fee * 100
console.log(all)
> 1998.9999999999998

Linux上为git无交互添加最低权限的使用用户

分享 by ourjs 1535098685256
Git是基于SSH,即能通过用户名密码登录git的用户,一般也是能通过ssh/putty登录linux服务器的,这时我们可能需要创建一个最低权限的Linux用户,让其只能执行git的相关指令,而无法登录ssh。这时我们可以通过adduser时指定shell来实现。

为jquery的ajax请求添加超时timeout时间

分享 by ourjs 1534839526948
有时侯要用ajax来轮询某个服务是否可用,但是各个浏览器ajax的超时时间有可能不一样,所以希望ajax能只尝试几秒钟,然后隔几秒再次发送一次ajax检查一次。可以用timeout属性。
$.ajax({
  url: '/onceos/version',
  dataType: 'json',
  timeout: 4000,
  success: function(result) {
    console.log('OK')
  },
  error: checkLoading
})

判断Node.JS TCP Socket当前连接状态

Node.JS by ourjs 1534420787010
Node.JS 官方文档中并没有获取当前 socket 连接状态的说明。不过打印 socket 可以看出,可以通过 socket._handle 属性来判断,当socket end或 destroy后,此属性被设为null。当建立tcp连接后 _handle 为 tcp 对象:

Socket {
  connecting: false,
  _hadError: false,
  _handle:
   TCP {
     bytesRead: 0,
     _externalStream: {},
     fd: -1,
     reading: true,
     owner: [Circular],
     onread: [Function: onread],
     onconnection: null,
     writeQueueSize: 0 },
  _parent: null,
  _host: null,

Node.JS进程间通讯的几种方法:Redis Publish/Subscribe 和 UDP Socket

Node.JS by ourjs 1534341996291
如果您装有redis客户端就可以通过 redis 的 publish/ subscribe方法来通讯,注意一旦使用subscribe,则此 redis 只能接收:SUBSCRIBE、PSUBSCRIBE、UNSUBSCRIBE和PUNSUBSCRIBE 等消息订阅指令,您可以专门创建一个redis实例来进行进程间通信。 

用JavaScript实现node.js中的path.join方法

JavaScript by ourjs 1534037904844
Node.JS中的 path.join 非常方便,能直接按相对或绝对合并路径,使用: path.join([path1], [path2], [...]),有时侯前端也需要这种方法,如何实现呢?
其实直接从 node.js 的 path.js 拿到源码加工一下就可以了: 
1. 将 const 等 es6 属性改为 var,以便前端浏览器兼容
2. 添加一个判断路戏分隔符的变量 sep,即左斜杠还是右斜杠,以第一个路戏分隔符为准
3. 将引用的变量和函数放到一个文件里就可以了:

JavaScript中新建一个带全局变量参数的new Function动态函数

JavaScript by ourjs 1533815097727
有些场景会动态传递一些计算公式到后端,后端计算出结果,计算公式可能会使用到一些变量。如用户输入的公式:  a + b,需要计算 a + b 的值。有一种方法,在公式中使用 this 参数,然后传入model实现,如:

myFunc = Function( 'return this.a + this.b' )


分享到