简介:Electron 可以让你使用纯 JavaScript 调用丰富的原生(操作系统) APIs 来创造桌面应用。 你可以把它看作一个 Node. js 的变体,它专注于桌面应用而不是 Web 服务器端。这不意味着 Electron 是某个图形用户界面(GUI)库的 JavaScript 版本。 相反,Electron 使用 web 页面作为它的 GUI,所以你能把它看作成一个被 JavaScript 控制的,精简版的 Chromium 浏览器。从开发的角度来看, Electron application 本质上是一个 Node. js 应用程序。 与 Node.js 模块相同,应用的入口是
div id="loading"
style="width: 100%; height: 100%; position: fixed; background-color: rgb(255, 255, 255); z-index: 807; top: 0px; opacity: 0.9; display: block;"
div id="contain"
div class="wrap" id="wrap1"
div class="part" id="part1" /div
/div
//获取滚动条当前的位置
function getScrollTop() {
//在标准w3c下,document.body.scrollTop恒为0,需要用document.documentElement.scrollTop来代替;
var scrollTop = 0;
if (document.documentElement && document.documentElement.scrollTop) {
scrollTop = document.documentElement.scrollTop;
}e
在以前,使用 create-vite-app 创建一个vue项目:npm install -g create-vite-app
create-vite-app my-app
使用 npx 创建一个 vue 项目:npx create-vite-app my-app
这条命令会临时安装 create-vite-app 包,命令完成后create-vite-app 会删掉,不会出现在 global 中。npx 会帮你执行依赖包里的二进制文件。比如之前我们这样写:npm i -D webpack
./node_modules/.bin/webpack -v
有了 npx,你只需要这样:np
.navbar{
margin-bottom: 0px;
background-color: #fff;
border-right: 0px;
border-left:0px;
border-radius: 0px;
}
.navbar-brand { padding:10px 15px; }
.navbar-brand img{ height: 30px; }
@media (min-width: 768px) {
.navbar-wrapper {margin-top: 20px;}
.navba
var base64String = /*base64图片串*/;//这里对base64串进行操作,去掉url头,并转换为byte var bytes = window.atob(base64String.split(',')[1]);//处理异常,将ASCII码小于0的转换为大于0,这里有两种写法 第一种:var ab = new ArrayBuffer(bytes.length);
var ia = new Uint8Array(ab);
for(var i = 0; i bytes.length; i++){
ia[i] = bytes.charCodeAt(i); //这里
.page-header {
color: #fff;
text-align: center;
background-color: #5FC3E4;
background-image: linear-gradient(120deg, #E55D87, #5FC3E4);
}
CSS linear-gradient() 函数
gradient 美[ˈɡreɪdiənt] n. (尤指公路或铁路的) 坡度,斜率,倾斜度; (温度、压力等的) 变化率,梯度变化曲线;
style
#grad1 {
height
INSERT INTO tp_article(
name,
user_id,
category_id,
thumbnail,
content,
description,
create_time,
tags
)
SELECT
title,
FLOOR(2 + (RAND() * 10)),
category,
thumbnail,
content,
description,
UNIX_TIMESTAMP(create_time) + ce
AES是一种区块加密标准算法 Advanced Encryption Standard,它的提出是为了升级替换原有的DES加密算法。因此它的安全强度高于DES算法。但不应片面理解,系统和数据的安全不仅与应用的加密算法有关,更与加密应用方案有关。和DES算法一样,AES也属于对称加密算法,对密钥的存储与保护,直接决定了整个系统的安全。
AES最常见的有3种方案,分别是AES-128、AES-192和AES-256,它们的区别在于密钥长度不同,AES-128的密钥长度为16bytes(128bit / 8),后两者分别为24bytes和32bytes。密钥越长,安全强度越高,但伴随运算轮数的增
window.onload = function () {
//初始化编辑器
var toolbarOptions = [
[{ 'header': [1, 2, 3, 4, 5, 6, false] }],
['bold', 'italic', 'underline', 'strike'],
['blockquote', 'code-block'],
[{ 'color': [] }, { 'background': [] }],
[{ 'align': [] }],
['image'],
['clean'
当浏览器碰到 script 脚本的时候:
script src="script.js" /script
没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行。
script async src="script.js" /script
有 async,加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步)。
script defer src=&q
1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases all.sql
2、导入所有库mysql 命令行mysql source all.sql;
3、导出某些库系统命令行mysqldump -uusername -ppassword --databases db1 db2 db1db2.sql
4、导入某些库mysql命令行mysql source db1db2.sql;
5、导入某个库系统命令行mysql -uusername -ppassword db1 db1.sql;
或mysql命令行mysql
创建表
CREATE TABLE `kfinfo` (
`Name` varchar(100) DEFAULT NULL,
`CardNo` varchar(50) DEFAULT NULL,
`Descriot` varchar(150) DEFAULT NULL,
`CtfTp` varchar(50) DEFAULT NULL,
`CtfId` varchar(50) DEFAULT NULL,
`Gender` varchar(50) DEFAULT NULL,
`Birthday` varchar(50) DE
MYSQL导入数据出现The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
查看 secure-file-priv 当前的值是什么
show variables like '%secure%';
那么我们就需要改配置文件my.ini
secure-file-priv=''
重启MySQL
2018年7月25日,Mislav Marohnić在推文中宣布GitHub前端已经彻底删除jQuery依赖,并全部依赖原生API。
可见的未来,很多jQuery插件会被ES5+重写,下面介绍一下原生javascript插件的写法:
插件需要满足的条件
一个可复用的插件需要满足以下条件:
插件自身的作用域与用户当前的作用域相互独立,也就是插件内部的私有变量不能影响使用者的环境变量;
插件需具备默认设置参数;
插件除了具备已实现的基本功能外,需提供部分API,使用者可以通过该API修改插件功能的默认参数,从而实现用户自定义插件效果;
插件需提供监听入口,及针对指定元素进行监听,
在实际资源操作中,总会有一些不符合 CRUD(Create-Read-Update-Delete) 的情况,一般有几种处理方法。1. 使用 POST 为需要的动作增加一个 endpoint,使用 POST 来执行动作,比如: POST /resend 重新发送邮件。2. 增加控制参数 添加动作相关的参数,通过修改参数来控制动作。比如一个博客网站,会有把写好的文章“发布”的功能,可以用上面的 POST /articles/{:id}/publish 方法,也可以在文章中增加 published:boolean 字段,发布的时候就是更新该字段 PUT /articles/{:id}?publish
用单数形式更佳,理由如下:
1、概念直观。
你有一个袋子,里面有好多个苹果,你会说这是个苹果袋。但无论里面有0,1,百万个苹果,它依然是个袋子。表也是如此,表明需要描述清楚,表里面包含的对象,而非有多少个数据。
2、便利性
单数形式更简单。有一些单词,它的复数形式可能是非常规的,或者就没有复数形式,但是单数不一样,单数形式则没那么多讲究。有些单词的复数,可能会想到你头大,可能得好好google才出来
3、优雅
特别是一些master-detail形式的资源名称,统一用单数,读起来更方便,对齐更整齐,从顺序上更有逻辑性。
对比下
单数:
Order
OrderDeta
使用webpack项目打包以后的项目在Chrome、Safari 下运行正常,但是在IE11下运行失败!提示 vuex requires a Promise polyfill in this browser。
一脸迷惑,原来是这样的。babel默认只转换语法,而不转换新的API,如需使用新的API,还需要使用对应的转换插件或者polyfill。例如,默认情况下babel可以将箭头函数,class等语法转换为ES5兼容的形式,但是却不能转换Map,Set,Promise等新的全局对象,这时候就需要使用polyfill去模拟这些新特性
babel-polyfill
原理是当运行环境中并没
Babel 的官网上在2017年9月宣布 ES2015 / ES2016/ ES2017 等等 ES20xx 时代的 presets 通通被废弃(deprecated),取而代之的是 babel-preset-env,并且承诺它将成为“未来不会过时的(future-proof)”解决方案。
babel-preset-env 是一个新的 preset,可以根据配置的目标运行环境(environment)自动启用需要的 babel 插件。
目前我们写 javascript 代码时,需要使用 N 个 preset,比如:babel-preset-es2015、ba
所有标签