跨域 node git
异步回调地狱:就是多个异步请求嵌套的表现
瑕疵:后期维护难
解决:通过promise技术
什么是promise:就是一种异步编程的解决方案
有三个状态:进行中、成功了,失败了
var p1 = new Promise(function (resolve, reject) { // Promise构造函数 有1个实战 方法
// 方法有2个形参 底层 也是 方法
//1.异步处理代码
//2.判断异步结果
if (操作成功) {
resolve(data) //数据处理完成
} else {
reject(err) //数据处理出错
}
})
var p2 = new Promise(....)
var p3 = new Promise(....)
...
p1
.then(function (data) {
console.log('操作成功,数据:' + data)
return p2; //相当于将p2的代码拿过来执行,然后继续调用方法
})
.then(function (data) {
console.log('操作成功,数据:' + data)
return p3; //相当于将p3的代码拿过来执行,然后继续调用方法
})
.then(function (data) {
console.log('操作成功,数据:' + data)
return p4; //相当于将p4的代码拿过来执行,然后继续调用方法
})
//....
.catch(function(err){
console.log(err)
})
.....
回调,回调,就是回头调用的意思,主函数的事先干完,回头再调用传进来的函数
跨域导致原因:浏览器同源策略
同源策略规则:只要 协议、域名、端口 有一个不一样 则称之为 跨域
同源策略:保证网站数据安全
1-后端声明header头 header("Access-Control-Allow-Origin: *")
2-**JSOP原理 2.1-静态页面通过script标签加载接口,
2.2-接口调用函数 实参是要响应的数据,
2.3-静态页面声明函数,接受参数
3-服务器配置(了解)
4-**前段代理
jq 是基于js封装的一个库(强调 库是一个文件,框架是多个文件)
用JS封装的库,
将原生JS代码封装起来,提供简单的方法供外部操作。
好处:1-更加方便操作网页,2-解决兼容性问题
下载:1-jquery.com/download 2-百度jq cdn
版本:1.x(兼容ie) 2.x 3.x 国内还是推荐使用1.x
JQ->JS $()[0]
JS->JQ $(JS标签对象)
选择器
CSS选择器
过滤选择器 :first :last :eq :odd :even
语法:$(选择器)
常用方法:prev()/next()/parent()/parents()/find()/sibling()
样式1:$().css(CSS属性名,CSS属性值) $().css(JSON对象)
样式2:$().add/remove/has/toggleClass(类名)
属性 :$().attr(属性名,属性值) $().attr(JSON对象)
内容:$().html/text/val() 不传参获取,传参设置
节点:第一个子prepend 最后子append 前兄弟before 后兄弟after 删除remove
$().事件类型(function(){ })
$().on(事件类型,function(){})
委托$(父).on(事件类型, 子, function(){})
循环
$.each(数组/对象,function(index, item){});
$(选择器).each(function(index, item){ });
实现开发项目多人协作开发
为了避免代码冲突或丢失使用版本控制软件
版本控制软件是什么:就是一个软件
作用:记录代码每次修改,万一冲突或丢失可以找回
种类:git(黑猫)、svn(龟)
1-得先有仓库 存放项目代码
2-通过版本控制软件 管理仓库代码
就是一个网站
作用:创建仓库,存放项目代码
好处:1-防丢失,防误删 2-便于多人协作开发
1-多人修改代码冲突 解决:通过git pull 然后提交
2-代码丢失(1别人误删,2版本回滚)
解决:查看提交日志,然后回滚
查看分支:git branch
创建分支:git branch 分支名
删除分支:git branch -d 分支名
切换分支:git checkout 分支名
合并分支:git merge 分支名 (注:将其他分支代码合并到当前分支)
就是用来下载node第三方模块的命令行工具
去哪下:不用下,node装好了自带的 直接用
验证:DOS窗口敲npm -v
下载模块:npm i/install 模块名或模块名@版本号 默认--save/--save-dev -g
卸载模块:npm uninstall 模块名
思考:--save和--save-dev有什么区
相同点:1-都是下载第三方模块,2-都会在package.json中记录
不同点:记录的位置不同
-g
在全局目录 npm config list去看
作用:只能在dos窗口敲命令,切记切记切记加-g项目中不能require
因为需要压缩项目中的js、css等静态资源,从而减轻服务器压力,加快访问速度
是前段自动化构建/压缩工具
从而减轻服务器压力,加快访问速度
Sass(SCSS)* vue库/框架
LESS* react库/框架
导入 @import '路径及文件名';
变量 $变量名: CSS属性值;
嵌套:咋大括号中写选择器即可 会自动加父前缀
混入:@mixin 名称($变量:默认值) {} @include 名称
继承:%名称 {} @extend %名称 jq extend({}) es6 extends 子覆盖父普通方法 子构造函数super
函数:@function 函数名() { @return } 调用 CSS属性名: 函数名()
其次SASS和LESS区别:1-声明变量分别为$和@,2-实现方式
Less是基于JavaScript,是在客户端处理的。Sass是基于Ruby的,是在服务器端处理的。
将一个复杂的程序,依据一定的规则/规范封装成几个块/文件,内部具体实现是隐藏的只保留部分接口/方法给外部使用
可以解决命名冲突;更好的分离,按需要的加载;提高代码可维护性、可扩展性;
什么是闭包:两个函数彼此嵌套,返回内部函数
特点:1-局部变量常驻内存,2-函数体外可以使用
设计模式:前辈的开发经验总结的开发思想
思想好处:1-便于维护,2-增强代码重用性,减少代码冗余等
跨域 node git的更多相关文章
- CORS 跨域 node |XMLHttpRequest 跨域提交数据 node
node服务端 app.post('/getdata',function(req,res,next){ req.setEncoding('utf8'); res.setHeader('Access-C ...
- 玩转spring boot——ajax跨域
前言 java语言在多数时,会作为一个后端语言,为前端的php,node.js等提供API接口.前端通过ajax请求去调用java的API服务.今天以node.js为例,介绍两种跨域方式:Cross ...
- 深入浅出:了解jsonp跨域的九种方式
什么是“”跨域”: 跨域访问,简单来说就是 A 网站的 javascript 代码试图访问 B 网站,包括提交内容和获取内容.由于安全原因,跨域访问是被各大浏览器所默认禁止的.当一个域与其他域建立了信 ...
- angular之跨域
一.什么是跨域? 跨域是指一个域下的文档或者脚本去请求另一个域下的资源.(广义) 广义的跨域: 1.资源跳转:链接跳转.重定向.表单提交. 2.资源嵌入:<link>.<script ...
- js跨域请求解决方案
什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的. 广义的跨域: 1.) 资源跳转: A链接.重定向.表单提交 2.) 资源嵌入: <link>.&l ...
- Node.js配合node-http-proxy解决本地开发ajax跨域问题
情景: 前后端分离,本地前端开发调用接口会有跨域问题,一般有以下3种解决方法: 1. 后端接口打包到本地运行(缺点:每次后端更新都要去测试服下一个更新包,还要在本地搭建java运行环境,麻烦) 2. ...
- 借助node实战JSONP跨域
一.前言: 浏览器安全是基于同源策略的.所谓同源策略就是三相同: 1.协议相同: 2.域名相同: 3.端口相同. 但,凡事都是有利弊,同源策略也导致了我们想用AJAX跨域请求,但NO!!为了规避这种限 ...
- Node.js实现CORS跨域资源共享
什么是CORS CORS(Cross-origin resource sharing),跨域资源共享,是一份浏览器技术的规范,用来避开浏览器的同源策略 简单来说就是解决跨域问题的除了jsonp外的另一 ...
- vue-cli3.0+node.js+axios跨域请求session不一样的问题
一.问题重述 使用的是,前后端分离,前端vue+axios请求,后端使用node搭建服务端接口,遇到的问题是,我通过登录接口吧数据存储型在session,我登录上以后,发现再次验证登录(另一个接口)的 ...
随机推荐
- 【USACO】JZOJ,Luogu P2690 接苹果 (dp-线性动规)
同步于CSDN:戳这里QAQ 来源:Luogu P2690,JZOJ 题目描述 很少有人知道奶牛爱吃苹果.农夫约翰的农场上有两棵苹果树(编号为 \(1\) 和 \(2\)), 每一棵树上都长满了苹果. ...
- 记录 Spine骨骼动画导入unity 步骤[unity3d 4.6.6版本 2d动画]
1:准备好unity使用Spine所需要的运行库,可到如下地址 https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine ...
- 今日确定开源近两年来的EA程序
从2018年开始研究mt4的mql,在2019年主要设计了NinjaLoveFishEA这款网格程序,稳定运行了1年多,今年的伊朗被袭击,造成金价大幅上涨,-18%止损我离场后,决定不再继续研究了. ...
- cf936B
题意简述:给出一个有向图,问从s出发是否能找到一条长度为奇数的路径并且路径的端点出度为0,存在就输出路径,如果不存在判断图中是否存在环,存在输出Draw,否则输出lose 题解:类似于DP,将每一个点 ...
- Anaconda 包管理与环境管理
包管理命令 conda命令 安装包 conda install 包名称 卸载包 conda remove 包名称 更新包 conda update 包名称 模糊查询 conda search 包名称 ...
- C# 截取屏幕
/// <summary> /// 截取屏幕 /// </summary> /// <param name="x">起点X坐标</para ...
- ORACLE10G非归档模式下RMAN异机迁库
环境信息: 源库 目标库 操作系统 WIN7 WIN SVR 2012 R2 IP x.x.x.216 x.x.x.112 数据库版本 10.2.0.4.0 - 64bi 10.2.0.4.0 - 6 ...
- thinkPHP5.1模型User设计
创建一个User类,再引入think\Model,让User类继承Model 例: <?php namespace app\index\model; use think\Model; class ...
- Linux命令(1)——top命令
一.功能 显示当前系统正在执行的进程的相关信息[进程ID.内存占用率.CPU占用率等] 性能分析工具 实时动态显示(系统中各个进程的资源占用情况) 二.用法 -b ...
- 输入python -m pip install --upgrade pip更新pip版本失败的解决办法
突然发现输入 python -m pip install --upgrade pip 无法升级pip,试了很多种其他更新pip的命令之后还是无效,遂采用简单暴力的解决办法 首先,直接输入pip uni ...