JS学习-从服务器获取数据
从服务器获取数据
Ajax
通过使用诸如 XMLHttpRequest 之类的API或者 — 最近以来的 Fetch API 来实现. 这些技术允许网页直接处理对服务器上可用的特定资源的 HTTP 请求,并在显示之前根据需要对结果数据进行格式化。
XHR已经面世非常之久,现在已经有了相当棒的跨浏览器支持。然而对于网页平台来说,Fetch和Promise是新近的产物,除了IE和Safari浏览器不支持,别的浏览器大多提供了支持。(现在Safari也即将为fetch和promise提供支持)。
在早期,这种通用技术被称为Asynchronous JavaScript and XML(Ajax)。
现在搜索一些东西,比如一个新产品。 主要内容将会改变,但大部分周围的信息,如页眉,页脚,导航菜单等都将保持不变。比如 Amazon
- 页面更新速度更快
- 每次更新都会下载更少的数据
XMLHttpRequest
const verseChoose = document.querySelector('select');
const poemDisplay = document.querySelector('pre');
verseChoose.onchange = function() {
updateDisplay(verseChoose.value);
};
function updateDisplay(verse) {
let url = verse.replace(" ", "").toLowerCase() + '.txt';
let request = new XMLHttpRequest();
request.open('GET', url);
request.responseType = 'text';
request.onload = function() {
poemDisplay.textContent = request.response;
};
request.send();
}
Fetch
const verseChoose = document.querySelector('select');
const poemDisplay = document.querySelector('pre');
//fetch()返回一个promise,它将解析从服务器发回的响应。 text() 也返回了一个 promise
verseChoose.onchange = function() {
updateDisplay(verseChoose.value);
};
function updateDisplay(verse) {
let url = verse.replace(" ", "").toLowerCase() + '.txt';
fetch(url).then(function(response) {
if(response.ok){
response.text().then(function(text) {poemDisplay.textContent = text;});
}else{
console.log('fetch error')
}
});
}
- fetch(url) 等同于 xhr.open('GET',url)
- fetch().then() 等同于 xhr.onload
- text() 等同于 request.responseType = 'text';
- response.ok 等同于 xhr.status == 200 || xhr.readyState == 4
JS学习-从服务器获取数据的更多相关文章
- Node.js学习之TCP/IP数据通讯
Node.js学习之TCP/IP数据通讯 1.使用net模块实现基于TCP的数据通讯 提供了一个net模块,专用于实现TCP服务器与TCP客户端之间的通信 1.1创建TCP服务器 在Node.js利用 ...
- windows phone 7 通过Post提交URL到服务器,从服务器获取数据(比如登陆时候使用)
原文:windows phone 7 通过Post提交URL到服务器,从服务器获取数据(比如登陆时候使用) HttpWebRequest myRequest = (HttpWebRequest)Web ...
- nodejs从服务器获取数据
// 从服务器获取数据 request('http://192.168.1.7:8080/getDemo', function(error, response, body) { console.log ...
- vue单页应用中,使用setInterval()定时向服务器获取数据,后来跳转页面后,发现还在不停的获取数据。
使用VUE开发单页项目时遇到这样的问题,mounted中使用setInterval()定时向服务器获取数据,后来跳转页面后,发现还在不停的获取数据.我以为是因为我路由用的push导致的,改成repla ...
- node.js之用ajax获取数据和ejs获取数据
摘要:学了node之后有时候分不清前台和后台,今天用ajax和ejs来从后台获取数据,没有数据库,用json数据来进行模拟数据库:来区分前台和后台需要干什么? 一.用ejs获取数据 1.文件目录 2. ...
- [安卓] 9、线程、VIEW、消息实现从TCP服务器获取数据动态加载显示
一.前言: 一般情况下从TCP服务器读取数据是放在一个线程里读的,但是刷新界面又不得不放在线程外面,所以需要用消息传递把线程里从TCP里获得的数据传送出来,然后根据数据对页面进行相应的刷新. 二.业务 ...
- node.Js学习-- 创建服务器简要步骤
1.创建项目目录 mkdir ningha(文件夹名)npm init 初始化项目 获得package.json 2..在node.Js命令行操作进入到文件所在目录 3.输入browser-sync ...
- js学习进阶-元素获取及样式设置
var imgs = document.querySelectorAll("article img"); 获得article元素的直接或间接子孙的所有img元素, <arti ...
- JQuery------.load()从服务器获取数据并加载到某个类的方法
注意:需要在../Content/asf.txt路径下加入文件 html <button class="Btn">按钮</button> js 参数意义: ...
- node.js学习笔记之json数据转string
Node.js中的JSON问题 var str = '{"dir":"kunhony","param":"archive&qu ...
随机推荐
- RestTemplate 远程服务调用
* 使用 Eureka 和 Nacos 为注册中心时也能使用这种方式调用 一.远程调用类 bean 配置注入 和 配置负载均衡 注意,必须在可配置类中注入 bean,例如 SpringBoot 启动 ...
- Spring全家桶(二)之SpringMVC总结
SpringMVC面试题 关于Spring,SpringMVC,SpringBoot三者的源码等解析,会在博客园上详细整理! 这个仅仅是面试题整理 SpringMVC工作原理 1.是否需要在类路径中使 ...
- 087_VS load codes for Salesforce
1. 下载VShttps://code.visualstudio.com/ ,安装后:Extensions 安装Salesforce Extension Pack .Salesforce Packag ...
- K8S部署之kubeadm
K8S部署笔记 一.集群环境说明 主机名 IP地址 说明 k8s-master01 192.168.1.107 master节点 k8s-master02 192.168.1.108 master节点 ...
- pyspark 中的rdd api 编码练习
1,使用pyspark 的rdd api 进行了数据文件的处理,包括构建RDD, 统计分析RDD ,从文件中读取数据RDD,从文件中构建 rdd的模式shema. 然后通过模式,从rdd中生成data ...
- oracle job的使用
select job, next_date, next_sec, failures, broken from user_jobs; create or replace sequence END_RES ...
- JS脱敏姓名、身份证、电话、邮箱
一.姓名脱敏 handleName(name) { let arr = Array.from(name) let result = '' if (arr.length === 2) { result ...
- python日志篇-基础版
对常用python日志语法做记录,方便以后重复使用 print内容记录到文件: #!/usr/bin/env python # -*- coding: utf-8 -*- ##____________ ...
- libnode使用addon
自己编译的一个libnode.so后,在js里调用hello.node的 addon时候会报错. Error: dlopen failed: cannot locate symbol "na ...
- 三.database阶段回顾
阶段回顾: 1.mysql:文件管理软件 2.三部分: 服务端 sql语句 客户端 3.客户端 mysql navicat 4.授权操作 用户操作 授权操作 5.sql语句 数据库操作 create ...