
JavaScript
xinyue_htx
自建博客https://xinyuehtx.github.io/
展开
-
如何在JavaScript中调用C++动态链接库
今天和大家聊一聊如何在JavaScript中调用C++动态链接库什么是ffiffi 是Foreign Function Interface的简称,是一款nodejs的addon。可以让大家在nodejs中调用c风格的c++动态链接库ffi调用起来非常简单,可以看下官网的这个例子var ffi = require('ffi-napi');var libm = ffi.Library('libm', { 'ceil': [ 'double', [ 'double' ] ]});libm.原创 2020-06-14 11:14:08 · 7754 阅读 · 1 评论 -
理解node中的stream的背压机制
今天和大家聊一聊node中的stream的背压机制。为什么要有流在编写服务时,经常会需要涉及到文件或者数据压缩的问题。使用合适的压缩算法能够有效减少请求文件的大小,从而减少网络中的数据传输量,提升响应速度。假设我们采用最普通的方式处理一个文件的获取,压缩,发送这个过程,就会是如下所示的图形表示:我们看到整个执行流程是串行的,所有耗时都会累加,导致整个过程耗时很长。流的出现就是为了解决这个串行处理的问题。如下图所示,我们将整个文件分成一个个小块,利用生产者消费者模式,上一个阶段的操作有一小部原创 2020-06-08 19:45:46 · 404 阅读 · 0 评论 -
理解React的渲染更新
今天来和大家聊React的渲染更新过程。React是JavaScript代码在聊渲染更新之前,我们不能忽视的一个概念是——React是JavaScript代码。我们都知道React传给浏览器的并不是一个HTML代码,而是一段js脚本。而在浏览器接收到js脚本之后,再执行并生成对应的html元素,插入到DOM中。这种做法提供了前端组件化的能力,能够让前端的同学不再“面向UI”进行操作。例如上面的例子,我们把一段原生的HTML元素封装成了一个Component组件。组件成了一个独立的模型概念,原创 2020-05-21 17:08:11 · 508 阅读 · 0 评论 -
使用cefsharp让前端调用.NET方法
今天和大家介绍一下使用cefsharp,在浏览器中调用.Net 方法什么是cef和cefsharpCef全称Chromium Embedded Framework 是谷歌的chromium浏览器的嵌入式框架,可以给予其他应用嵌入谷歌chromium浏览器的能力。CefSharp是Cef的.NET 封装版本,可以在.NET环境下运行Cef。有了CefSharp我们就能够在.NET应用中嵌入前端界面,大大扩展了前端页面在多端复用的能力。CefSharpn的的使用例子可以参考github给出的官方用例原创 2020-05-09 17:49:04 · 3178 阅读 · 0 评论 -
Unicode代理对(utf-16)
我们都知道Unicode的大部分字符都是都是使用16位编码,即2个字节表示。这也是为什么正则匹配中,Unicode使用“\uxxxx”进行匹配的原因为什么说是大部分呢?因为还有一个神奇的区域,叫做Unicode代理对。它们需要使用4个字节来表示一个字符。这里就给大家做介绍。问题来源Unicode的产生是为了处理不同语言之间的编码不兼容问题。比如如果中文和日文的不同文字使用了同一个编码...原创 2020-02-29 14:21:01 · 2517 阅读 · 0 评论 -
为什么JavaScript需要“提升”(hoisting)
不知道同学们在学习JavaScript时,有没有对JavaScript的“提升”(hoisting)这个概念感到困惑。什么是“提升”(hoisting)我们提到hoisting的时候专指JavaScript中的一种场景:对JavaScript的编译期间,文件中的函数,var定义的变量等的声明会被提升至命名空间(scope)的最上层。这也就意味着,在JavaScript中,即使你的变量先初...原创 2020-02-28 09:01:55 · 243 阅读 · 0 评论 -
C#的span元素的优势场景在哪里
Span是C#7.0引入的,它旨在高效使用和管理一段连续的内存。很多人第一次接触它的时候,想不出它的具体使用场景。我第一次接触的时候就会想这个和数组使用有啥区别么?首先看一个例子static void Main(string[] args){ var str = "123456"; var array = str.ToCharArray(); Console.W...原创 2020-02-26 12:56:38 · 1162 阅读 · 0 评论