当前位置:网站首页>【SSR服务端渲染+CSR客户端渲染+post请求+get请求+总结】
【SSR服务端渲染+CSR客户端渲染+post请求+get请求+总结】
2022-08-04 23:04:00 【勇敢*牛牛】
SSR服务端渲染
get请求方式
get.html文件
<form action="http://10.9.46.253:4002" target="_self">
<input type="text" name="user">
<button type="submit">提交</button>
</form>
req
请求 客户端发送给这个服务端的消息对象res
响应 这个服务端发给客户端的消息对象res.end()
发送给客户端响应消息
res.writeHead(200,{
})
200
表示请求成功 404
找不到{}
响应头 将消息发送给客户端响应的时候,告诉客户端一系列要求res.write("<div>你好</div>");
给响应消息体中写入内容,可以使用多个,但是必须写在res.end()
之前res.end()
就是把上面的内容发送出去
get.js,服务器文件
var http = require("http");
var querystring = require("querystring");
http.createServer(function (req, res) {
var str = req.url.split("?")[1];
var o = querystring.parse(str);
res.writeHead(200, {
"Content-Type": "text/html;charset=utf-8",
"Access-Control-Allow-Origin": "*" //CORS 允许谁跨域访问
})
// res.write(o.user + ",欢迎来到我的网站");
res.write("<h1>啦啦啦,你好" + o.user)
res.write("欢迎访问勇敢牛牛的处理get类型服务器</h1>");
res.end();
}).listen(4002, "10.9.46.184", function () {
console.log("已启动get类型服务器10.9.46.184:4002");
});
Ajax请求方式
<script>
var str = "user=牛小牛"
var xhr = new XMLHttpRequest();
xhr.addEventListener("load", loadHandler);
xhr.open("GET", "http://10.9.46.184:4002?" + str);
xhr.send();
function loadHandler(e) {
console.log(xhr.response);
}
</script>
控制台:啦啦啦,你好牛小牛欢迎访问勇敢牛牛的处理get类型服务器
CSR客户端渲染
通过Ajax实现CSR,客户端渲染
csr.html
<body>
<form action="http://10.9.46.253:4002" target="_self">
<input type="text" name="user">
<button type="submit">提交</button>
</form>
<div></div>
<script> var form,input,div; init(); function init(){
form=document.querySelector("form"); input=document.querySelector("input"); div=document.querySelector("div"); form.addEventListener("submit",submitHandler); } function submitHandler(e){
e.preventDefault(); ajax("user="+input.value) } function ajax(param){
var xhr=new XMLHttpRequest(); xhr.addEventListener("load",loadHandler); xhr.open("GET","http://10.9.46.253:4002?"+param); xhr.send(); } function loadHandler(e){
// console.log(this.response) div.innerHTML=this.response; } </script>
</body>
post.js文件
/* 加载服务器对象 */
var http = require("http");
var querystring = require("querystring")
/* 创建服务器 */
http.createServer(async function (req, res) {
/* 通过这个promise函数实现异步阻塞 */
var o = await getData(req);
res.writeHead(200, {
"Content-Type": "text/html;charset=utf-8",
"Access-Control-Allow-Origin": "*" //CORS 允许谁跨域访问
})
res.write(`欢迎${
o.user}访问勇敢牛牛的处理post类型服务器`);
res.end();
}).listen(8080, "10.9.46.184", function () {
console.log("已启动post类型服务器10.9.46.184:8080");
})
function getData(req) {
return new Promise(function (resolve, reject) {
var str = '';
req.on("data", function (_chunk) {
/* 收到的是buff类二进制数据流 */
str += _chunk
// console.log(str);
})
req.on("end", function () {
var o = querystring.parse(str);
// console.log(o);
resolve(o)
})
})
}
post.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>safsd </h1>
<script> var str = "user=牛小牛"; // str = str.repeat(10000) var xhr = new XMLHttpRequest(); xhr.addEventListener("load", loadHandler); xhr.open("POST", "http://10.9.46.184:8080"); /* post发送数据 */ xhr.send(str); function loadHandler(e) {
console.log(xhr.response) } </script>
</body>
</html>
总结
SSR服务端渲染:直接get请求服务端会写入当前页面
CSR服务端渲染:通过求服务端会嵌入当前页面,不修改页面
get请求有两种:直接在url后面跟进对象,通过Ajax请求注意xhr.end()没有参数
post通过xhr的open方法(“POST”)进入,因为这个数据的“庞大性”需要异步promise处理数据,实现异步阻塞式同步。
边栏推荐
- 【2020】【Paper Notes】Metasurfaces: Multifunctional and Programmable——
- 【3D建模制作技巧分享】ZBrush如何设置笔刷快捷键
- Using ngrok to optimize web pages on raspberry pi (2)
- 【字符串函数内功修炼】strlen + strstr + strtok + strerror(三)
- 956. 最高的广告牌
- Leaflets of three bouquet of roses
- [Cultivation of internal skills of string functions] strncpy + strncat + strncmp (2)
- The Go Programming Language (Introduction)
- 生成回文数
- 从“草原牛”到“数字牛”:蒙牛的数字化转型之道
猜你喜欢
Use ngrok to optimize web pages on raspberry pi (1)
智慧养老整体解决方案
【软件测试】常用ADB命令
enumerate()函数
【3D建模制作技巧分享】如何使用ZBrush导出效果图
2022七夕程序员必备的表白黑科技(七夕限定款)
Using ngrok to optimize web pages on raspberry pi (2)
【无标题】
truffle
I was rejected by the leader for a salary increase, and my anger rose by 9.5K after switching jobs. This is my mental journey
随机推荐
MySQL的JSON 数据类型2
使用代理对象执行实现类目标方法异常
The Record of Reminding myself
MySQL增删改查基础
MySQL的JSON 数据类型1
加解密在线工具和进制转化在线工具
【2020】【Paper Notes】Metasurfaces: Multifunctional and Programmable——
Controller层代码这么写,简洁又优雅!
Leaflets of three bouquet of roses
【3D建模制作技巧分享】ZBrush如何设置笔刷快捷键
质量管理大师爱德华·戴明博士经典的质量管理14条原则
逆序对的数量
2022七夕程序员必备的表白黑科技(七夕限定款)
【字符串函数内功修炼】strncpy + strncat + strncmp(二)
enumerate()函数
365天深度学习训练营-学习线路
中国的顶级黑客在国际上是一个什么样的水平?
ffplay视频播放原理分析
一点点读懂regulator(二)
从“草原牛”到“数字牛”:蒙牛的数字化转型之道