Provide Best Programming Tutorials

什么是前端路由

前端路由的概念相对于后断路由而言的,好了问题来了,什么是前端路由?什么又是后断路由?他们之间有什么关系? 后端路由阶段 路由这个概念,是后端先出现的,所以,要想彻底了解前端路由,就需要理解后端路由。 在Web发展的早期,我们的一个url请求长这样 http://hometown.xxx.edu.cn/bbs/forum.php 有时还会有带`.asp`或`.html`或`.jsp`的路径,这就是所谓的SSR(Server Side Render),通过服务端渲染,直接返回页面。典型的工作流程式这样: 浏览器发出请求服务器通过端口(通常是80)监听到发送的请求,解析url路径服务器根据服务端路由的配置,返回相应的资源,这些资源可以是json数据,图片等浏览器根据数据包的Content-Type来决定如何解析数据 可以看到,前端并不负责任何渲染或者路由方面的工作,这些事情都由后端完成了。这样做的好处就是前端省事,不过缺点就是后端会很忙,另外,后端开发工程师也必须要处理前端的代码,在前端的代码里面嵌入后端逻辑。 请求的流程看起来是这个样子的 前端路由阶段 前端的发展经过了几个阶段,在前端的早期,采用的是纯后端路由,但是这种方案每次请求都要重新刷新页面言重的影响着交互体验而且对于开发人员并不友好。随着网络的发展,迫切需要一种方案来改善这种情况。Ajax,全程Asnchronous JavaScript And XML,就是这样一种技术解决方案。 1998年,微软的技术团队提出Ajax的解决方案,并在IE5通过ActiveX来实现了这项技术,在微软之后,其他的浏览器也相继通过XMLHttpRequest来实现了Ajax。 有了Ajax技术,用户交互就不用每次都刷新页面,体验带来了极大的提升。但是真正让这项技术发扬光大的,还是后来Google。Google借助该技术开发了一系列大名鼎鼎的应用,比如Gmail,Google Map等,这些应用的出现向人们展示了Ajax技术的强大和魅力,真正释放了众多开发人员的想象力,让其不仅仅局限于简单的数据交互和页面展示,为后来的异步交互式体验方式的繁荣发展带来了根基。 前后端分离阶段 有了Ajax技术,前端渲染就变成可能了,后端只需要提供API即可,格式随意,目前流行的是Restful API。 我们来看下图,这是典型的前端渲染架构图。 每次请求涉及到的数据,会使用Ajax从通过API的形式从后端请求过来。 每次请求涉及到的静态资源都会从静态资源服务器获取,这些资源包括HTML+CSS+JS,然后在前端对这些请求回来的资源进行渲染。这就是所谓的前端渲染。需要注意的是,客户端的每一次请求,都会从静态资源服务器请求文件。同时可以看到,和之前的后断路由不同,这时后端只是负责提供API了。 后端只提供API来返回数据, 前端通过Ajax获取数据, 并且可以通过JavaScript将数据渲染到页面中. p这样做最大的优点就是前后端责任的清晰, 后端专注于数据上,…

Continue Reading

Ubuntu 16.04下Shadowsocks服务器端安装及优化

前言 本教程旨在提供简明的Ubuntu 16.04下安装服务器端Shadowsocks。不同于Ubuntu 16.04之前的教程,本文抛弃initd,转而使用Ubuntu 16.04支持的Systemd管理Shadowsocks的启动与停止,显得更为便捷。优化部分包括BBR、TCP Fast Open以及吞吐量优化。 本教程仅适用于Ubuntu 16.04及之后的版本,基于Python 3,支持IPv6。 安装pip 本教程使用Python 3为载体,因Python 3对应的包管理器pip3并未预装,首先安装pip3: sudo apt install python3-pip 安装Shadowsocks 因Shadowsocks作者不再维护pip中的Shadowsocks(定格在了2.8.2),我们使用下面的命令来安装最新版的Shadowsocks: pip3 install https://github.com/shadowsocks/shadowsocks/archive/master.zip 安装完成后可以使用下面这个命令查看Shadowsocks版本: sudo ssserver --version 目前会显示“Shadowsocks 3.0.0”。 创建配置文件…

Continue Reading

Using LinearLayout to build Wechat Login interface

Below is how it looks like Here we use LinearLayout to arrange the elements <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/hint_username" android:paddingBottom="20dp"…

Continue Reading

ssh-copy-id

Log in as root Edit ssh config: sudo nano /etc/ssh/sshd_config Change this line: PasswordAuthentication no to PasswordAuthentication yes Restart daemon: sudo systemctl restart sshd Do ssh-copy-id: ssh-copy-id someuser@<my-ip>    …

Continue Reading

Intellij IDEA 破解方法

下载地址:https://pan.baidu.com/s/1DNo3CvkI7EMy6Mt0hdzTpg 1、在本站下载好mac文件包,打开dmg镜像文件,将“IntelliJ IDEA”拖入到“Applications”应用文件夹中进行安装; 2、等待软件安装完成后先不要运行软件,回到之前打开的dmg镜像界面,打开“Crack”文件夹,将文件夹目录下的“JetbrainsCrack.jar”复制到软件的安装目录下,默认目录为【Application/IntelliJ IDEA.app/Contents/bin】,如图所示: 3、在当前目录下,也就是【Application/IntelliJ IDEA.app/Contents/bin】目录下找到【idea.vmoptions】文件,右键选择合适的文本编辑器打开编辑; 4、在打开的【idea.vmoptions】文件最后一行加上: -javaagent:/Applications/IntelliJIDEA.app/Contents/bin/JetbrainsCrack.jar 然后保存文件即可。 5、运行软件,弹出软件注册激活激活窗口,我们在“Activate license with”栏中选择“Activation code”随意输入激活码即可完成破解激活操作,进入软件设置向导界面,我们点击“Create New Project”新建项目,完成后我们点击macos菜单栏中的软件图标,在弹出的下拉框中选择“About IDEA”查看软件相关版本信息,出现下图代表已经成功注册激活使用; 小提示:破解版本请不要轻易升级,以免升级使用后软件破解失效。

Continue Reading
Close Menu