在嵌入式设备树莓派上编译QuickJS教程:一个C语言编写的极简JavaScript引擎
by ourjs keys JS学习 JavaScript 1563211266482
QuickJS 是一个完全由C语言编写的极小型JavaScript引擎,作者是大名鼎鼎的FFmpeg和QEMU的创建者Fabrice Bellard以及C专家Charlie Gordon。QuickJS采用开源MIT协议,不限制商业用途。它是一个“小而完整的JavaScript引擎”,支持最新的ES2019语言规范。
因为其复杂度要远远低于用C++编写的Google的V8和Mozilla的SpiderMonkey,因此非常适合在嵌入式设备上使用。
因为完全由C语言编写,可以很方便地集成到一些著名的C语言程序比如,替换掉Redis和Nginx中的Lua脚本。
由于可以单独将JS编绎成可执行文件,应用场景更加广泛。
树莓派4对比测试:性能提升3倍启动时间反而变慢?TF卡成最大瓶颈
by ourjs keys 技术前沿 分享 1561438036895
全新的第四代树莓派(Raspberry Pi 4)发布了,是有史以来最强的树莓派,性能可比主流电脑。但国外某位小哥在做完性能测试对比发现,相比3B,提升最大的是外接USB3.0的读写速度,提升了6倍。但其它性能提升并不是特别明显,启动时间反而变慢了。

道理很简单,目前RaspberryPi 只能从TF卡启动,TF卡的读写速度目前只有10~30M/s。因而完全无法发挥出树莓派4千兆网卡,USB3.0的速度优势。反而要加载更多的系统驱动,启动时间变慢也不足为奇。
 
树莓派3B+将原来100M网卡提升到了300M,而不是千兆也是出于这个原因,因为最大只能利用到30M/s的传输速度。未来树莓派要有质的提升,可能还需要更小,更便宜的固态硬盘出现了。不过目前接外一个USB3.0的移动硬盘也是个不错的选择。
GO有语法缺陷,缺少泛型、public/private、三元运算符?我不喜欢 Go 语言的十个理由
by ourjs keys 大话编程 分享 1561089850695

Go 语言有多火爆?国外如 Google、AWS、Cloudflare、CoreOS 等,国内如七牛、阿里、知乎等都已经开始大规模使用 Go 语言开发相关产品,可以说它是近来风头最盛的编程语言之一。但再好的编程语言也不会是完美的编程语言,本文作者 Lawrence 使用了三年 Go 语言,并在这三年间参与了几个大型 Go 语言项目,但三年后他彻底放弃 Go 语言,而且不打算在新项目中使用它。

Go 语言带给他的总体印象是:“好的方面非常好,不好的方面实在令人无法忍受”。Lawrence 在一篇博客文章中列出了他不再喜欢 Go 语言的十大理由,这篇文章很快在 HackerNews 上引发热议,下面就让我们一起来看看这十个理由到底有哪些。

使用JavaScript的Proxy监听对象属性变化并进行类public/private的访问控制
by ourjs keys JS学习 JavaScript 1559991024343
Proxy是ES6的引入的一个对象监听机制。可视为JavaScript对象的一个代理中间件。用户在访问对象时,会触发自定义行为。
Proxy最简单的用法是可以监听对象属性的变化,比如下面的,当 obj 的 visit 属性改变时,自动更新页面上相应的 input元素值。

var obj = {}

var handler = {
  set: function(target, name, value) {    
    //改变被代理对象的值,使之保持一致
    target[name] = value

    var input = document.querySelector('[name=' + name + ']')
    if (input) {
      input.value = value
    }
  }
}

var proxy = new Proxy(obj, handler);
proxy.visit = 100
JavaScript求一个字符串的字节长度
by ourjs keys JS学习 JavaScript 1559174024852
某些场景可能会对输入内容的字节长度有限制,比如说RSA加密算法。但 String.prototype.length 只会统计字符串的字符个数,并不是字节长度。

同样的字符数,中文要比英文多占用1倍的空间。此时可以通过chartCodeAt来统计字符长度。
Node.JS用RSA签名算法公钥加密私钥解密,实现License软件授权验证
by ourjs keys JS学习 Node.JS 1558965941529
在Node.JS经常用加密算法对一些敏感用户数据进行加密,比如说用户密码。而且用户密码不需要考虑解密,如果用户遗失密度,重置成新的已经新密码即可。此时用不可逆加密算法即可,对比加密后的字符串即可。

还有一些应用需要解密出原内容的,比如说HTTPS的传输。使用公钥对HTTP请求进行加密,在服务器用私钥解密。此时需要用到不对称加密算法,在Node.JS中这种机制很容易实现:

Node.JS借助OS模块获取当前Windows系统用户登录名
by ourjs keys JS学习 Node.JS 1558340432960

Node.js os 模块提供了一些基本的系统操作函数。可以借助os对象获取系统基本信息:


$ node user.js
{ uid: -1,
  gid: -1,
  username: 'Administrator',
  homedir: 'C:\\Users\\Administrator',
  shell: null }
Node.JS在命令行中检查Chrome浏览器是否安装,并打开指定网址
by ourjs keys 编程技巧 Node.JS 1558333606904
使用Windows命令行cmd可以指定浏览器打开网址。在node.js中使用start即可,但是当用户没有安装Chrome时使用start则会报错,并会弹出错误对话框,Chrome默认安装位置为:

C:\Documents and Settings\{USERNAME}\Local Settings\Application Data\Google\Chrome\Application

我们还需要借助os获取Windows当前登录的用户名,如果没有安装Chrome的话,则用IE打开,最终代码如下:
用网页table thead tfoot元素完美控制页眉页脚显示内容打印的简单方式
by newghost keys 编程技巧 前端 1557673865722
目前对于网页的页眉页脚打印方面,浏览器还有很大的不足。之前可能有一些 借助css固定fixed位置的解决方案,但是效果都不太理想。

但在最近chrome对table打印的更新中,增加了对 <thead> <tfoot> <th> 等元素的优化支持,把以前后面几页表格标题会被截断的问题解决了。 其实我们可以用这个特性来简单地实现页眉页脚的打印。
微服务运维难维护?数据基础架构公司Segment宣布放弃微服务构架
by ourjs keys 大话编程 分享 1557459142150
很多人可能已经知道微服务已成为明日黄花,它曾经作为最佳实践为Segment公司起到很大作用,但是并不适合所有场所。
简单说,微服务是将后台业务拆分成很多各自功能独立的面向服务软件架构,其模块化、减少测试压力、功能组合、开发团队自治等优点广为人知。与之对应的是单体式架构,即用单个服务为测试部署扩展提供所有功能模块。
2017年早些时候,Segment产品开发遇到了问题。如果在每个部门继续采用微服务,不但不会加速开发过程,反而会落入复杂的泥潭。这种架构的优势反而变成了负担。最终,团队发现需要三个全职工程师才能确保这套系统运转,这种无法承受的负担必须改变。这篇博文就是回顾如何将产品和团队需求更好嵌入开发过程的回顾。

 近期热门 - 点击最多
  1. 网站集成百度、Bing必应搜索引擎,在网页中实现站内全文搜索
  2. React Hooks入门教程九:在React中集成使用Vue实现数据双向绑定,手动配置Webpack和Babel
  3. node.js性能压力测试入门教程:wrk和loadtest安装使用
  4. JavaScript和node.js内存泄露的原因和避免方法及Chrome调试工具使用教程
  5. Html5网页中用JavaScript调用本地手机摄像头扫描识别微信二维码、条形码:postMessage跨域https传递扫码结果消息
  6. JavaScript设置对象属性只读不可修改、不可枚举、不可删除:Object.defineProperty
  7. CSS教程:图片使用混合模式和颜色叠加filter滤镜,改变PNG图标颜色
  8. CSS教程:如何设置自动显示隐藏scrollbar滚动条,自定义外观样式/宽度,附demo示例大全
  9. node.js通过Error.prepareStackTrace获取上层调用函数的文件名地址和行数位置
  10. JavaScript判断字符串是否为数字类型:Number.isInteger、isNaN、正则表达式比较

  全端社区 - 最新回复
  1. 网站集成百度、Bing必应搜索引擎,在网页中实现站内全文搜索
  2. MyEclipse持续性开发教程:用JPA和Spring管理数据
  3. React Hooks入门教程九:在React中集成使用Vue实现数据双向绑定,手动配置Webpack和Babel
  4. Piriform Recuva:电脑、移动硬盘文件误删除免费恢复软件
  5. React Hooks 入门教程五:useReducer结合useContext 实现 Redux 组件间共享状态管理,简单用户登录示例教程
  6. React Hooks 入门教程四:useReducer使用说明,改变对象中不同参数的值
  7. React Hooks 入门教程三:useContext、createContext使用,父子组件传递状态数据
  8. React Hooks 入门教程二:useState使用、useEffect参数作用
  9. React Hooks 入门教程一:开发工具选择、安装配置Yarn,开发环境搭建
  10. HTML向内嵌iframe发送提交post数据(无JavaScript)

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA