前端学习之ajax

一、什么是json
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。
它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示
数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于
机器解析和生成,并有效地提升网络传输效率。

json类型是js类型的子集
json对象到json字符串是序列化过程,json字符串到json对象是反序列化过程
python的json模块,json.dumps(对象),序列化,json.loads(json字符串)反序列化

合格的json对象:
["one", "two", "three"]

{ "one": 1, "two": 2, "three": 3 }

{"names": ["张三", "李四"] }

[ { "name": "张三"}, {"name": "李四"} ]

不合格的json对象
{ name: "张三", ‘age‘: 32 }                     // 属性名必须使用双引号[32, 64, 128, 0xFFF] // 不能使用十六进制值
{ "name": "张三", "age": undefined }            // 不能使用undefined
{ "name": "张三",  "birthday": new Date(‘Fri, 26 Aug 2011 07:13:10 GMT‘),  "getName":  function() {return this.name;}    // 不能使用函数和日期对象}

stringify和parse方法
JSON.parse(): 用于将json字符串转化为javascript对象
console.log(JSON.parse(‘{"name":"Yuan"}‘));
console.log(JSON.parse(‘{name:"Yuan"}‘)) ;   // 错误
console.log(JSON.parse(‘[12,undefined]‘)) ;   // 错误

JSON.stringify(): 用于将javascript对象转化为JSON字符串
console.log(JSON.stringify({‘name‘:"egon"})) ;

二、ajax
同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求;
异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。

AJAX除了异步的特点外,还有一个就是:浏览器页面局部刷新;(这一特点给用户的感受是在不知不觉
中完成请求和响应过程)

ajax优缺点
优点:
1、ajax异步请求
2、ajax无需刷新整个页面
3、因为服务器响应内容不再是整个页面,而是页面中的局部,所以AJAX性能高;

缺点:
1、AJAX并不适合所有场景,很多时候还是要使用同步交互;
2、AJAX虽然提高了用户体验,但无形中向服务器发送的请求次数增多了,导致服务器压力增大;
3、因为AJAX是在浏览器中使用Javascript技术完成的,所以还需要处理浏览器兼容性问题;

ajax语法
$.ajax({
               url:"/handle_Ajax/",
               type:"POST",
               data:{username:"Yuan",password:123},

               success:function(data){
                   alert(data)
               }
               })
               
data: 当前ajax请求要携带的数据,是一个json的object对象,ajax方法就会默认地把它编码成某种格式
             (urlencoded:?a=1&b=2)发送给服务端;此外,ajax默认以get方式发送请求。

contentType:默认值: "application/x-www-form-urlencoded"。发送信息至服务器时内容编码类型。
             用来指明当前请求的数据编码格式;urlencoded:?a=1&b=2;如果想以其他方式提交数据,
             比如contentType:"application/json",即向服务器发送一个json字符串:
               $.ajax("/ajax_get",{
             
                  data:JSON.stringify({
                       a:22,
                       b:33
                   }),
                   contentType:"application/json",
                   type:"POST",
             
               });                          //{a: 22, b: 33}

             注意:contentType:"application/json"一旦设定,data必须是json字符串,不能是json对象
csrf跨站请求伪造
$.ajaxSetup({
    data: {csrfmiddlewaretoken: ‘{{ csrf_token }}‘ },
})
时间: 2024-10-14 09:00:06

前端学习之ajax的相关文章

前端学习——JQuery Ajax使用经验

0.前言 在项目推进过程中经常使用Ajax,通过Jquery提供的函数可以非常方便的使用Ajax,但是在实际使用中也遇到一些问题,例如如何防止浏览器使用缓存,如何使用同步方式等.通过博文整理总结希望自身有所提高. 在这里通过一个加法例子说明问题.为了突出ajax,前端网页和后端PHP程序尽可能的简单. [前端]--add.html 图1 add页面 [后端]--add.php <?php // 返回JSON格式 header('Content-Type:application/json;char

前端学习——使用Ajax方式POST JSON数据包

0.前言 本文解释如何使用Jquery中的ajax方法传递JSON数据包,传递的方法使用POST(当然PUT又有时也是一个不错的选择).POST JSON数据包相比标准的POST格式可读性更好些,层次结构也更清晰. 为了说明问题,前端和后端较为简单,重点突出AJAX的应用. [前端]--add-post-json.html 图1 add页面 [后端]--add-post-json.php <?php // 返回JSON格式 header('Content-Type:application/jso

前端学习笔记--9/5~13/5 Ajax, jQuery

周末没有写本周的总结,今天再补上.顺别计划一下这周的学习内容. 上周说的计划本周做一些HTML+CSS+JS的小demo,但是我并没有去做.准确的说,上周基本上我只有星期一到星期三是全力开赴学习的,星期四的晚上熬了一天的夜,从此一直到今天都没有觉得补回来了,依旧是这么的困.周末也是因为这个原因,所以几乎没有学习,就在家睡过去了.果然是人老了精神跟不上了么.气哭. 赶紧开始总结吧.... Ajax JS和ajax jQuery之间的关系. 1. JS是一门前端语言 2. ajax是一门技术,提供一

好程序员web前端学习路线分享了解AJAX是什么

好程序员web前端学习路线分享了解AJAX是什么首先是服务器 什么是服务器:咱们的页面来源于服务器:实例(在phpnwo上面存放一个页面), 咱们把页面放在互联网的服务器上,就有了自己的网站了. 1.异步同步 生活中的同步: 生活中的异步: 在JavaScript语言中,同步和异步的概念刚好相反. 这JavaScript中同步就是:你不执行完上面的代码,那么下面的代码你就别执行:一步一步执行,这就是同步. 异步就是可以一块执行的代码: 进程的概念 进程≠程序 程序从开始到结束的一次执行过程叫做进

【转载】前端学习路径

前端学习路径 什么是前端工程师? 总而言之前端工程师就是运用HTML/CSS/JavaScript等Web技术,在工作中配合设计师实现用户界面,和后端工程师进行数据对接,完成Web应用开发的职位. 开发工具 设计软件 前端工程师最首要的任务就是把设计师的设计图切好并翻译成代码,所以我们要学习一些设计软件的基础操作和切图方法. Photoshop 运用最广泛的设计软件,大部分人都在用它,很有必要学习一下 前端工程师必备的PS技能——切图篇 Sketch 轻量且功能强大,切图迅速高效,为UI设计而生

黑马程序员:从零基础到精通的前端学习路线

随着互联网的深入发展,前端开发工程师一跃成为市场上非常抢手的人才.很多同学,包括以前做UI的.Java的.或者对于IT完全零基础的同学都想学习前端.下图是网上流传甚广的一张前端学习思维导图,很多初学者表示看到这些密密麻麻的知识点就已经晕了.确实,前端是一门涵盖面很广的学科.但是想学前端的你也不用慌张,内容虽多但有迹可循,只要循序渐进就不怕学不好前端! 那么前端开发到底需要学什么?应该怎么学?接下来黑马程序员前端学院教你如何从零基础学习前端. 一.前端开发入门 在入门阶段,你首先要学会最基本的技能

前端学习路径

作者:余博伦链接:https://zhuanlan.zhihu.com/p/21935921来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 什么是前端工程师? 总而言之前端工程师就是运用HTML/CSS/JavaScript等Web技术,在工作中配合设计师实现用户界面,和后端工程师进行数据对接,完成Web应用开发的职位. 阅读更多有关前端工程师 开发工具 设计软件 前端工程师最首要的任务就是把设计师的设计图切好并翻译成代码,所以我们要学习一些设计软件的基础操作和切

前端学习之路

转载自:https://github.com/qiu-deqing/FE-learning必备基础技能 前端技能汇总(https://github.com/JacksonTian/fks)这个项目详细记录 了前端工程师牵涉到的各方面知识.在具备基本技能之后可以在里面找到学习 的方向,完善技能和知识面. frontend-dev-bookmarks(https://github.com/dypsilon/frontend-dev-bookmarks)是老外总结的前端开发资源.覆盖面非常广.包括各种

jQuery延迟加载(懒加载)插件 – jquery.lazyload.js-Web前端(W3Cways.com) - Web前端学习之路

Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的. 在包含很多大图片长页面中延迟加载图片可以加快页面加载速度. 浏览器将会在加载可见图片之后即进入就绪状态. 在某些情况下还可以帮助降低服务器负担. Demo页面: 基本选项 淡入效果 对不支持JavaScript浏览器的降级处理 水平滚动 容器内水平滚动 容器内垂直滚动