当前位置: 首页 > news >正文

安徽省博物馆网站建设网站开发实践意义

安徽省博物馆网站建设,网站开发实践意义,opencart做的网站,查网站域名备案查询系统第 1 章#xff1a;原生 AJAX 1.1 AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML#xff0c;就是异步的 JS 和 XML。 通过 AJAX 可以在浏览器中向服务器发送异步请求#xff0c; 最大的优势#xff1a;无刷新获取数据。 AJAX 不是新的编程语言#xff0c;而是…第 1 章原生 AJAX 1.1 AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML就是异步的 JS 和 XML。 通过 AJAX 可以在浏览器中向服务器发送异步请求 最大的优势无刷新获取数据。 AJAX 不是新的编程语言而是一种将现有的标准组合在一起使用的新方式。 1.2 XML 简介 XML 可扩展标记语言。 XML 被设计用来传输和存储数据。 XML 和 HTML 类似不同的是 HTML 中都是预定义标签而 XML 中没有预定义标签 全都是自定义标签用来表示一些数据. 比如说我有一个学生数据 name 孙悟空 ; age 18 ; gender 男 ; 用 XML 表示 student name孙悟空/name age18/age gender男/gender /student现在已经被 JSON 取代了。 1.3 AJAX 的特点 1.3.1 AJAX 的优点 可以无需刷新页面而与服务器端进行通信。允许你根据用户事件来更新部分页面内容。 1.3.2 AJAX 的缺点 没有浏览历史不能回退存在跨域问题(同源)SEO 不友好 1.4 AJAX 的使用 1.4.1 核心对象 XMLHttpRequestAJAX 的所有操作都是通过该对象进行的。 1.4.2 使用步骤 创建 XMLHttpRequest 对象 var xhr new XMLHttpRequest();设置请求信息 xhr.open(method, url); //可以设置请求头一般不设置 xhr.setRequestHeader(‘Content-Type’, ‘application/x-www-form-urlencoded’);发送请求 xhr.send(body) //get 请求不传 body 参数只有 post 请求使用接收响应 //xhr.responseXML 接收 xml 格式的响应数据 //xhr.responseText 接收文本格式的响应数据 xhr.onreadystatechange function (){ if(xhr.readyState 4 xhr.status 200){ var text xhr.responseText; console.log(text); } }1.4.3 解决 IE 缓存问题 问题在一些浏览器中(IE),由于缓存机制的存在ajax 只会发送的第一次请求剩余多次请求不会在发送给浏览器而是直接加载缓存中的数据。 解决方式浏览器的缓存是根据 url 地址来记录的所以我们只需要修改 url 地址 即可避免缓存问题 xhr.open(get,/testAJAX?tDate.now());1.4.4 AJAX 请求状态 xhr.readyState 可以用来查看请求当前的状态 0: 表示 XMLHttpRequest 实例已经生成但是 open()方法还没有被调用。 1: 表示 send()方法还没有被调用仍然可以使用 setRequestHeader()设定 HTTP请求的头信息。 2: 表示 send()方法已经执行并且头信息和状态码已经收到。 3: 表示正在接收服务器传来的 body 部分的数据。 4: 表示服务器数据已经完全接收或者本次接收已经失败了 代码演示 1. ajax发送GET请求 get.html: !DOCTYPE html htmlheadmeta charsetutf-8titleAJAX GET 请求/titlestyle typetext/css#result {width: 200px;height: 100px;border: 1px solid pink;}/style/headbodybutton点击发送请求/buttondiv idresult/divscript// 获取button元素const btn document.getElementsByTagName(button)[0];const result document.getElementById(result);// 绑定事件btn.onclick function() {// 1.创建对象const xhr new XMLHttpRequest();// 2.初始化 设置请求方法 和 urlxhr.open(GET, http://127.0.0.1:8000/server?a100b200);// 3.发送xhr.send();// 4.事件绑定处理服务端返回的结果xhr.onreadystatechange function() {// 判断 (服务端返回了所有的结果)if (xhr.readyState 4) {// 判断响应状态码 200 404 403 500if (xhr.status 200 xhr.status 300) {// 处理服务端响应结果 行 头 空行 体// 1.响应行console.log(xhr.status); // 状态码console.log(xhr.statusText); // 状态状态字符串console.log(xhr.getAllResponseHeaders()); // 所有的响应头信息console.log(xhr.response); // 响应体信息 // 设置result的文本 result.innerHTML xhr.response;} else {}}}}/script/body /html server.js: // 1. 引入express const express require(express)// 2. 创建应用对象 const app express()// 3. 创建路由规则 app.get(/server, (request, response) {// 设置响应头 设置允许跨域response.setHeader(Access-Control-Allow-Origin, *)// response.header(Access-Control-Allow-Headers, Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild);// 设置响应体response.send(hello ajax) })// 4. 监听端口 启动服务 app.listen(8000, () {console.log(服务已经启动8000端口监听中...) })2. ajax发送POST请求 server.js : // 1. 引入express const express require(express)// 2. 创建应用对象 const app express()// 3. 创建路由规则 app.get(/server, (request, response) {// 设置响应头 设置允许跨域response.setHeader(Access-Control-Allow-Origin, *)// response.header(Access-Control-Allow-Headers, Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild);// 设置响应体response.send(hello ajax) })app.post(/server, (request, response) {// 设置响应头 设置允许跨域response.setHeader(Access-Control-Allow-Origin, *)// response.header(Access-Control-Allow-Headers, Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild);// 设置响应体response.send(hello ajax post) })// 4. 监听端口 启动服务 app.listen(8000, () {console.log(服务已经启动8000端口监听中...) })post.html: !DOCTYPE html htmlheadmeta charsetutf-8titleAJAX POST 请求/titlestyle typetext/css#result {width: 200px;height: 100px;border: 1px solid pink;}/style/headbodyp当鼠标悬浮在div上时发送请求/pdiv idresult/divscriptconst result document.getElementById(result);// 绑定事件result.addEventListener(mouseover, function() {// console.log(test)// 1. 创建对象const xhr new XMLHttpRequest();// 2. 初始化 设置请求类型 和 urlxhr.open(POST, http://127.0.0.1:8000/server)// 3. 发送xhr.send(aaa100bbb200)// 4. 事件绑定xhr.onreadystatechange function() {// 判断if(xhr.readyState 4) {if(xhr.status 200 xhr.status 300) {// 处理服务器返回的结果result.innerHTML xhr.response} else {}}}}) /script/body /html ajax服务端响应json数据 json.html: !DOCTYPE html htmlheadmeta charsetutf-8titleJSON/titlestyle typetext/css#result {width: 200px;height: 100px;border: 1px solid pink;}/style/headbodyp当按下键盘时发送请求/pdiv idresult/divscriptconst result document.getElementById(result);// 绑定键盘按下事件window.onkeydown function () {// console.log(test)// 发送请求const xhr new XMLHttpRequest();// 设置响应体数据类型xhr.responseType json// 初始化xhr.open(GET, http://127.0.0.1:8000/json-server)// 发送xhr.send()// 事件绑定xhr.onreadystatechange function () {if(xhr.readyState 4) {if(xhr.status 200 xhr.status300) {// 处理服务端返回结果// console.log(xhr.response)// result.innerHTML xhr.response// 手动对服务器返回的数据进行转化/* let data JSON.parse(xhr.response)console.log(data)result.innerHTML data.name */// 自动转换 通过设置响应体数据类型xhr.responseType jsonconsole.log(xhr.response)result.innerHTML xhr.response.name}}}}/script/body /html server.js: // 1. 引入express const express require(express)// 2. 创建应用对象 const app express()// 3. 创建路由规则 app.get(/server, (request, response) {// 设置响应头 设置允许跨域response.setHeader(Access-Control-Allow-Origin, *)// 设置响应体response.send(hello ajax) })// all 可以接收任意类型的请求 app.all(/server, (request, response) {// 设置响应头 设置允许跨域response.setHeader(Access-Control-Allow-Origin, *)// 允许前端post请求 自定义请求头名称response.header(Access-Control-Allow-Headers, *);// 设置响应体response.send(hello ajax post) })app.all(/json-server, (request, response) {// 设置响应头 设置允许跨域response.setHeader(Access-Control-Allow-Origin, *)// 允许前端post请求 自定义请求头名称response.header(Access-Control-Allow-Headers, *);// 响应一个数据const data {name: zep};// 对 对象进行字符串转换let str JSON.stringify(data)// 设置响应体,send方法只接收字符串类型的参数response.send(str) })// 4. 监听端口 启动服务 app.listen(8000, () {console.log(服务已经启动8000端口监听中...) })手动对服务端返回的字符串数据进行转换把字符串转成对象 自动转换通过设置响应体数据类型xhr.responseType ‘json’
http://www.pierceye.com/news/85212/

相关文章:

  • 怎么怎么做网站怎样建设个自己的网站首页
  • 衣服搭配网站建设购物网站建设 属于信息系统管理与设计么
  • wordpress+企业站模版南昌做网站要多少钱
  • 南通网站建设电话html与wordpress
  • 南通优化网站怎么收费网页前端开发和后端开发
  • 网站更换服务器影响江苏建湖网站建设
  • 制作公司网站要多少费用呢网站做seo推广方案
  • 建站教程wp上海闸北城市建设有限公司网站
  • 鲜花网站建设的总体目标如何建设网站赚钱
  • 网站栏目设计规划表做网站 分类搜索
  • 如何选择网站建设平台网站建设的功能和目标
  • 网站空间商查询网站建设技术培训
  • 做一个企业的网站怎么做的免费制作企业微商城
  • 企业电子商务网站建设的重要性wordpress搞笑
  • 百度网站制作联系方式wordpress响应式模板
  • 做网站 套用模板之后用什么改重装没有设置wordpress
  • dede做的网站弹广告房地产店铺首页设计过程
  • 网站分为四个步骤开发建设网站开发后台注意事项
  • 永久免费的培训学校管理软件南昌seo推广优化
  • 写文案要看的网站h5网站页面
  • 成品软件网站推荐深圳品牌网站建设公司哪家好
  • 无棣做网站寺院的网站怎么做
  • 德宏做网站我是新手如何做跨境电商
  • 长春火车站最新防疫要求医院网站 功能
  • 网站与手机app是一体吗口碑好的东莞网站建设
  • 软件系统开发要多少钱长沙抖音seo公司地址
  • 哪里有免费网站可以看成都h5网站建设
  • 河南省建设监理协会官网站55g游戏网
  • 网站网页链接金棕榈客户关系管理系统
  • 贵州省住房和城乡建设厅网站首页教育网站开发