ACM图论算法入门-广度优先搜索
小时候有没有玩过连连看的游戏?或者类俄罗斯方块之类的游戏?
怎么实现连通块的消除?(连通块是指颜色相同,在图中连通的方格)
1 |
|
项目地址:
https://uking2016.github.io/g_search_demo/g_search_demo/test.html
1 |
|
https://uking2016.github.io/g_search_demo/g_search_demo/test.html
1 | var webpack = require('webpack'); |
1 | var postcss = require('postcss'); |
1 | .a{ |
1 | .a { |
node前后端分离
思考:前后端不分离有哪些缺点?
前后端分离的定义
就是前端和后端的分开嘛
前后端分离
啊,怎么分开,那我直接cx把前端代码弄走吗?
咦,请求不了了,
XMLHttpRequest cannot load https://s103.ggwan.com/mainlinghitv2/css/trends.css. No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘null’ is therefore not allowed access. The response had HTTP status code 404.
无法加载https://s103.ggwan.com/mainlinghitv2/css/trends.cs XMLHttpRequest。在所请求的资源上没有“访问控制允许源站点”报头。因此,不允许源站点“null”访问。响应具有HTTP状态代码404。
我们看看发送ajax的时候浏览器干了什么
站点null想访问https://s103.ggwan.com站点上的内容,结果报错。啊?为啥不能访问?
因为浏览器的同源策略
浏览器的同源策略
跨域处理的方法
1.CORS
跨域的处理方法
2.JSONP
跨域的处理方法
3.websocket
不受同源策略限制
跨域的处理方法
用一个代理服务器访问后端服务(就是避免让浏览器去请求不同的域,让我们的服务器去请求,就不存在同源策略啦)
node作为中间层实现跨域
接下来,我们一起用node(express)来创建一个服务器吧
var app = express();
App.listen(8080);
这个app就是我们的代理服务器啦,用它可以管理我们的静态资源(就是我们的前端代码啊,html,css,js)
app.use(express.static(path.join(__dirname, ‘/‘)));
就是这一句话!!就是表示静态资源就在当前目录,然后express就会自己去找index.html啦
结合webapack
A: Webpack除了用来打包,还能在开发环境下作为一个node的服务器(webpack-dev-server)哦。
B: 哇,那你的意思是,webpack-dev-server就可以跨域访问资源咯?
A: 没错噢,只要简单的配置啦,请看代码
在webpack.config.js里,我们这样配置
devServer:{
historyApiFallback:true,
hot:true,
inline:true,
progress:true,//报错无法识别,删除后也能正常刷新
proxy: {//用devserver作跨域
'/mainlinghitv2/css/trends.css': {
target: 'https://s103.ggwan.com',//真正要请求的域名
changeOrigin: true
}
}
}
B: 就是说,我们在开发的时候,可以直接用webpack来调试接口就不用在本地搭建php(/java)的环境咯?
A: 是的哦
B: /哭笑 那为什么还要用node作中间层?
A: 因为webpack-dev-server是只能在开发环境运行的哦,webpack-dev-server生成的包并没有放在你的真实目录中,而是放在了内存中,就是说,webpack-dev-server不会生成html,js这些资源的目录里面,而这些静态文件在生产环境中是必须的,看下图
开发环境下
B: 也就是说,用了webpack-dev-server我们只是在开发环境下实现了前后端分离
A: 是的,生产环境下,我们其实也是同域访问的情况
B:就是说,上线的时候,又出现了前后端在一起的情况
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
1 | $ hexo new "My New Post" |
More info: Writing
1 | $ hexo server |
More info: Server
1 | $ hexo generate |
More info: Generating
1 | $ hexo deploy |
More info: Deployment