在Vuejs项目中封装echarts的主要目的是简化echart的使用难度,使之不再需要编写复杂的options,只需传递需要绘制的数据即可。
参考链接
- vue项目中封装echarts的比较优雅的方式,by liyoro.
在Vuejs项目中封装echarts的主要目的是简化echart的使用难度,使之不再需要编写复杂的options,只需传递需要绘制的数据即可。
最近研究一个C#开源项目,发现在离线的情况下无法顺利编译链接,其原因是缺乏NuGet安装的程序集。因此研究一下NuGet打包和离线安装的方法。
NuGet是一个自由开源软件包管理系统。用于Microsoft开发平台。以前称NuPack。 2010年首次发布。已经进化为一个庞大的工具与服务生态系统。
进入Nuget官网:https://www.nuget.org/,
搜索框里搜索需要的安装包,例如MaterialDesignThemes,一个主题包,点击自己所需的安装包。
最近处理的几个项目都是用Java语言编写的,学习一下。
Filter可认为是Servle的一种“加强版”,主要用于对用户请求request进行预处理,也可以对Response进行后处理,是个典型的处理链。使用Filter的完整流程是:Filter对用户请求进行预处理,接着将请求HttpServletRequest交给Servlet进行处理并生成响应,最后Filter再对服务器响应HttpServletResponse进行后处理。Filter与Servlet具有完全相同的生命周期,且Filter也可以通过
换种说法,Servlet里有request和response两个对象,Filter能够在一个request到达Servlet之前预处理request,也可以在离开Servlet时处理response,Filter其实是一个Servlet链。
以下是Filter的一些常见应用场合:
Servlet通常称为服务器端小程序,是运行在服务器端的程序,用于处理及响应客户的请求。Servlet是个特殊的java类,继承于HttpServlet。客户端通常只有GET和POST两种请求方式,Servlet为了响应则两种请求,必须重写doGet()和doPost()方法。
JavaBeans是Java中一种特殊的类,可以将多个对象封装到一个对象(bean)中。特点是可序列化,提供无参构造器,提供getter方法和setter方法访问对象的属性。名称中的“Bean”是用于Java的可重用软件组件的惯用叫法。
总的来说,web.xml的加载顺序是:
-> -> -> 。其中,如果web.xml中出现了相同的元素,则按照在配置文件中出现的先后顺序来加载。
对于某类元素而言,与它们出现的顺序是有关的。以
为例,web.xml中当然可以定义多个 ,与 相关的一个元素是 ,注意,对于拥有相同 的 和 元素而言, 必须出现在 之后,否则当解析到 时,它所对应的 还未定义。web容器启动初始化每个 时,按照 出现的顺序来初始化的,当请求资源匹配多个 时, 拦截资源是按照 元素出现的顺序来依次调用doFilter()方法的。 同 类似,此处不再赘述。 Servlet里有request和response两个对象,Filter能够在一个request到达Servlet之前预处理request,也可以在离开Servlet时处理response,Filter其实是一个Servlet链。
请参考Struct2 基础介绍 。
请参考Spring MVC 解析之 DispatcherServlet。
Flow 是 JavaScript 代码的静态类型检查器。它做了很多工作来提高你的工作效率。使您编码更快、更智能、更自信,并且规模更大。
Flow 通过静态类型注解检查你的代码是否有错误。这些 类型允许您告诉 Flow 您希望您的代码如何工作,Flow 将确保它确实以这种方式工作。
Vue2的源代码就使用了Flow进行静态类型检查。下面介绍在Vue2项目中安装配置使用Flow的方法。
1 | npm install --save-dev @babel/core @babel/cli @babel/preset-flow |
接下来,您需要在项目的根目录下创建一个文件,即.babelrc, 并将”@babel/preset-flow”配置在您的”presets”.
1 | { "presets": ["@babel/preset-flow"] } |
1 | npm install --save-dev flow-bin |
安装完成后在package.json中加入下面的脚本:
1 | "scripts": { |
首先生成flow配置文件.flowconfig:
1 | .\node_modules\.bin\flow init |
新建一个文件index.js:
1 | // @flow |
// @flow或者 /* @flow */告诉flow检查这个文件
输入npm run flow 执行类型检查
注:在vue单文件组件使用flow需要额外配置
注:项目路径不能存在中文
Three.js是一个跨浏览器的 JavaScript 库和应用程序编程接口(API),用于使用WebGL在Web 浏览器中创建和显示动画3D 计算机图形。
Three.js 允许使用JavaScript语言创建图形处理单元(GPU) 加速的 3D 动画作为网站的一部分,而无需依赖专有浏览器插件。
请参考一篇文章了解 threejs 在 vue 项目中的基本使用。
以下是几种创建js对象的方法。
《追求理解的教学设计方法》一书采用逆向设计方法,认为教学设计应分为如下三个阶段:
教学设计目标,该设计将达到什么目标?
学生将理解…
设计关键的教学和学习活动。哪些学习体验和教学能够使学生达到预期的结果,以WHERETO分类学习活动。
因断电导致Windows系统无法启动MongoDB后台服务,报1067错误。下面记录该故障的修复过程。
移除文件 the file /data/db/mongod.lock
运行命令 mongod.exe –repair
1 | run mongod.exe --repair --config %mongodb_install_path\mongod.cfg" |
1 | net start MongoDB |
请参考无线通信系统中数据带宽、载波频率和载波带宽的关系怎样理解?和无线数字通信中数据速率、载波频率和带宽的关系。
香农定理给出了信道信息传送速率的上限(比特每秒)和信道信噪比及带宽的关系。香农定理可以解释现代各种无线制式由于带宽不同,所支持的单载波最大吞吐量的不同。
在有随机热噪声的信道上传输数据信号时,信道容量$R_{max}$与信道带宽W,信噪比S/N关系为:
$$R_{max}=W*log2(1+S/N)$$
注意这里的log2是以2为底的对数。
对于一个带宽为W(Hz)的无噪声低通信道,最高的码元传输速率Bmax:
$$B_{max}=2W(Baud)$$
即每赫兹带宽的理想低通信道的最高码元传输速率是每秒2个码元。
载波(carrier wave)是指被调制以传输信号的波形,一般为正弦波。一般要求正弦载波的频率远远高于调制信号的带宽,否则会发生混叠,使传输信号失真。 可以这样理解,我们一般需要发送的数据的频率是低频的,如果按照本身的数据的频率来传输,不利于接收和同步。使用载波传输,我们可以将数据的信号加载到载波的信号上,接收方按照载波的频率来接收数据信号,有意义的信号波的波幅与无意义的信号的波幅是不同的,将这些信号提取出来就是我们需要的数据信号。 载波就是携带信息/信号的波形,它携带的方式是进行频率、振幅、相位间隔调制。
电子计算机科学中,基频(baseband)加上载波(carrier wave)而成为宽频(broadband)。
载波是信号调制与发射的载体,它只有一个中心频率,和带宽本身没任何关系。比如11n协议规定可以工作在2G频段,也可以工作在5G频段,其他因素都一样的。假定20M带宽,工作在2G频段的时候载波频率是2.4GHz,那它实际占用的频谱资源是2.390GHz-2.410GHz。工作在5G频段的时候载波频率是5GHz,那它实际占用的频谱资源是4.990GHz-5.010GHz。
请参考幅度调制。
请参考数字调制的原理。
最近在维护一个网页应用时,发现其音频偶尔无法自动播放,且报如下错误:
1 | Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first. |
该错误产生原因是chrome66之后都禁止音视频的自动播放。要解决该问题,可以在用户首次进入页面时,提示用户点击启动音视频自动播放,模拟用户交互。js代码如下:
1 | <script> |
以上方法有问题,不能模拟用户交互,还是需要用户真正点击网页。另外还可以参考文章解决浏览器无法自动播放音频的问题的解决方案。