目前可工作,但浏览器顶部没有提示 “您使用的是xxx,, —disable-web-security不安全xxx”,
所以不一定要浏览器顶部出现提示才表示跨域开启成功!chrome的版本是68.x。
但是可工作的浏览器是单独打开的,就是底部任务栏有两个Chrome浏览器图标,且生成了新的MyChromeDevUserData目录。
因此断定: Chrome开启跨域成功的标志是,执行命令参数启动后,在任务栏有单独的新的Chrome ,且在MyChromeDevUserData目录里面生产了数据!!!!
open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/wangqiang944/Documents/MyChromeDevUserData --test-type --ignore-certificate-errors
\
还尝试过的可工作的指令:
open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/wangqiang944/Documents/MyChromeDevUserData --test-type --ignore-certificate-errors
\
// --ignore-certificate-errors 生效,--disable-web-security不生效,报跨域错误
open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --test-type --ignore-certificate-errors --allow-running-insecure-content
或者
open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --test-type --ignore-certificate-errors
// --ignore-certificate-errors 不生效,--disable-web-security生效,报证书错误
open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --ignore-certificate-errors --allow-running-insecure-content
浏览器cookie无法跨域设置(在跨域浏览器设置,Chrome跨域模式和非跨域模式是两种浏览器模式):
chrome://flags/#same-site-by-default-cookies
设置为disabled
编程符号英文:
逗号: comma
分号: semicolon
冒号: colon
圆括号: parenthesis
方括号:bracket
大括号:brace 、 curly brackets
公有云真机
远程真机:www.testin.cn
pinganbankVIP@123
私有云真机
test.pro.testin.cn/realmachine…
ES6
Export 与 import的复合写法
模块重定向
如果我们要从另一个模块(有效地创建“重定向”)中导出默认值(default)和 星标(*):
// module "redirect-module.js"
export {default} from './other-module';
export * from './other-module';
参考阮一峰:es6.ruanyifeng.com/#docs/modul…
如果在一个模块之中,先输入后输出同一个模块,import语句可以与export语句写在一起。
export { foo, bar } from 'my_module';
// 可以简单理解为
import { foo, bar } from 'my_module';
export { foo, bar };
对象、数组深拷贝:
浅拷贝:拷贝了简单值或对象指针。 对于简单值,开辟了新的栈区拷贝值,对于对象类型值,只是拷贝了指针。
深拷贝:开辟了新的存放空间拷贝值。
简单数组,可以通过Array.from(arr) arr.concat([]) arr.slice(0) 实现深拷贝。
对象数组,无法通过上面方法实现深拷贝,但能通过 arr.map(obj => Object.assign({}, obj))实现对象数组深拷贝。
限制iview Input框 只能输入大小写字母、数字、下划线:
<Input v-model="model.personalizeList[index].fieldKey" :maxlength="50" @keyup.native="checkFieldKey(index)" />
/**
* 限制input只能输入大小写字母、数字、下划线
* @param page 查询的页数
*/
checkFieldKey(index) {
this.model.personalizeList[index].fieldKey = this.model.personalizeList[index].fieldKey.replace(/[^a-zA-Z0-9_]/g,'')
},
**flexible** 适配方案(放大**ios**中的**vConsole**)
因为默认 flexible 是根据系统缩放的。我们为了测试方便,我们可以人为设置一下。
注意以上方案上线时记得去掉。否则部分小页面会出问题。
Webpack
在你的应用程序中,有三种使用 loader 的方式:
内联
可以在 import 语句或任何等效于 "import" 的方式中指定 loader。使用 ! 将资源中的 loader 分开。分开的每个部分都相对于当前目录解析。
import Styles from 'style-loader!css-loader?modules!./styles.css';
通过前置所有规则及使用 !,可以对应覆盖到配置中的任意 loader。
选项可以传递查询参数,例如 ?key=value&foo=bar,或者一个 JSON 对象,例如 ?{"key":"value","foo":"bar"}。
尽可能使用 module.rules,因为这样可以减少源码中的代码量,并且可以在出错时,更快地调试和定位 loader 中的问题。
query和options都是当前loader需要的特殊配置(可选)。webpack2.5之前为query,之后为options
babel-loader?presets[]=es2015,presets[]=stage-1,presets[]=stage-0,presets[]=react,Plugins[]=babel-plugin-components
void 运算符
参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/void
****\
void 运算符 ****对给定的表达式进行求值,然后返回 undefined。
****\
描述
这个运算符能向期望一个表达式的值是undefined的地方插入会产生副作用的表达式。
void 运算符通常只用于获取 undefined的原始值,一般使用void(0)(等同于void 0)。在上述情况中,也可以使用全局变量undefined 来代替(假定其仍是默认值)。
\
立即调用的函数表达式
在使用立即执行的函数表达式时,可以利用 void 运算符让 JavaScript 引擎把一个function关键字识别成函数表达式而不是函数声明(语句)。
void function iife() {
//……
}();
JavaScript URIs
当用户点击一个以 javascript: URI 时,它会评估URI中的代码,然后用返回的值替换页面内容,除非返回的值是undefined。void运算符可用于返回undefined。例如:
这个链接点击之后不会做任何事情,如果去掉 void(),
点击之后整个页面会被替换成一个字符 0。
Node
1、Nodejs开发辅助工具nodemon:
修改代码后,需要重新启动 Express 应用,所做的修改才能生效。若之后的每次代码修改都要重复这样的操作,势必会影响开发效率,本文将详细介绍Nodemon,它会监测项目中的所有文件,一旦发现文件有改动,Nodemon 会自动重启应用
2、什么是fsevents:
Native Access to Mac OS-X FSEvents。 fsevents是mac下用的。
For a cross-compatible file watching module that uses fsevents。 所以也是用来监听变化的。
fsevents不在package.json里,但是仍然安装了,是因为你的系统不是Windows系统,fsevents是苹果系统的可选依赖。至于为什么仍然会安装,你看下你写在package.json里的包是不是有某个或者某些库依赖fsevents。package.json文件里写的是你项目直接依赖的包,这些包依赖的其他包不是在项目根目录的package.json里面写的,而是在包目录里的package.json写的
现代浏览器性能优化
\
新link资源类型:
e.g.:
08年以前:
Preload
浏览器会在遇到如下link标签时,立刻开始下载main.js(不阻塞parser),并放在内存中,但不会执行其中的JS语句。
只有当遇到script标签加载的也是main.js的时候,浏览器才会直接将预先加载的JS执行掉。
Prefetch
浏览器会在空闲的时候,下载main.js, 并缓存到disk。当有页面使用的时候,直接从disk缓存中读取。其实就是把决定是否和什么时间加载这个资源的决定权交给浏览器。
新标签属性:
e.g.:
defer和async是script标签的两个属性,用于在不阻塞页面文档解析的前提下,控制脚本的下载和执行。
defer的执行时间是在所有元素解析完成之后,DOMContentLoaded 事件触发之前。
async的执行时间是在当前JS脚本下载完成后,所以多个async script是执行顺序是不固定的。async只能用于加载一些独立无依赖的代码,比如Google Analysis之类。
Linux
cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。
GET请求:
curl "www.hotmail. com/when/junk.c…"
如果下载的是HTML文档,那么缺省的将只显示文件头部,即HTML文档的header。要全部显示,请加参数 -i,要只显示头部,用参数 -I。任何时候,可以使用 -v 命令看curl是怎样工作的,它向服务器发送的所有命令都会显示出来。 POS请求:
curl -d "birthyear=1905&press=OK" www.hotmail.com/when/junk.c…
查看CURL工作过程(GET请求):
curl -v svcm.paic.com.cn/svcmnew/log…
只看头部:
curl -I -v svcm.paic.com.cn/svcmnew/log…
curl -d "userName=nwhUCDIJ6wmR2p1KgXPnFw==" svcm.paic.com.cn/svcmnew/log…
curl -d "userName=nwhUCDIJ6wmR2p1KgXPnFw==" svcm.paic.com.cn/svcmnew/log…
Linux命令 把一个目录内容全部复制到另一个目录并覆盖:cp -r dist/ updist/
LInux他
SSH登录操作如下:
ssh username@host
使用密码登录,每次都必须输入密码,非常麻烦,好在SSH还提供了公钥登录,可以省去输入密码的步骤。
这种方式要求用户提供自己的公钥,如果没有,可以使用ssh-keygen生成一个:
ssh-keygen
运行之后,会在/root/.ssh/目录下,分别生成公钥和私钥:id_rsa.pub和id_rsa
输入以下命令,将公钥传送到远程主机,公钥会添加到远程主机/root/.ssh/authorized_keys文件中,公钥登录的设置就完成了。
ssh-copy-id user@host