zoukankan      html  css  js  c++  java
  • Django与AJAX

    AJAX

    JSON简述

    • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
    • JSON 是轻量级的文本数据交换格式
    • JSON 独立于语言
    • JSON 具有自我描述性,更易理解

    JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。

    使用json对象应注意的问题:

    • 字典内属性名必须加引号
    • 元素不能使用十六进制
    • 不能使用undefined
    • 不能使用函数和日期对象

    stringify与parse方法

    JavaScript中关于JSON对象和字符串转换的两个方法:

    JSON.parse(): 用于将一个 JSON 字符串转换为 JavaScript 对象 

    JSON.parse('{"name":"alex"}');
    JSON.parse('{name:"alex"}') ;      // 错误
    JSON.parse('[18,undefined]') ;     // 错误
    

    JSON.stringify(): 用于将 JavaScript 值转换为 JSON 字符串。 

    JSON.stringify({"name":"alex"})
    

    和XML的比较

    ​ JSON 格式有两个显著的优点:一是书写简单,结构清晰;二是符合 JavaScript 原生语法,可以由解释引擎直接处理,不用另外添加解析代码。

    AJAX简介

    ​ Asynchronous Javascript And XML,直译的意思是“异步的Javascript和XML”,即使用Javascript语言与服务器进行异步交互,传输的数据为XML(传输的数据不只是XML)。

    ​ AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容(局部完成请求和响应过程)。

    AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。

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

    AJAX常见应用情景

    常见应用:

    • 搜索引擎根据用户输入的关键字,自动提示检索关键字
    • 用户注册时的用户名的查重

    ​ 当文件框发生了输入变化时,使用ajax技术向服务器发送一个请求,然后服务器会把查询到的结果响应给浏览器,最后再把后端返回的结果展示出来。

    看中的特点是:

    • 整个过程中页面没有刷新,只是刷新页面中的局部位置
    • 当请求发出后,浏览器还可以进行其他操作,无需等待服务器的响应

    AJAX的优缺点

    优点:

    • AJAX使用JavaScript技术向服务器发送异步请求;
    • AJAX请求无须刷新整个页面;
    • 因为服务器响应内容不再是整个页面,而是页面中的部分内容,所以AJAX性能高;

    缺点:

    • 摈弃了back和history 功能,违背了浏览器的功能
    • 安全性降低,能够暴露更多的数据和服务器逻辑
    • 对搜索引擎支持比较弱,使用不当会增加网络流量,降低系统性能
    • 许多手持设备并不支持ajax

    Ajax与JSON

    ​ Ajax与后端进行数据更新使用json传递,服务器端生成符合json语法格式的字符串,

    发送给客户端,客户端再将该字符串转换成javascript对象。

    ​ 具体而言,jdango中视图函数与ajax进行数据交换时,使用的是JsonResponse,使用时需要导入以下模块from django.http import JsonResponse

    【拓展】JsonResponse与HttpResponse的区别

    HttpResponse

    • Content-Type为text/html,当然它还支持很多的属性
    • 与ajax进行通信时,HttpResponse设置content_type属性为'application/json',并且返回的数据要dumps成json字符串

    JsonResponse

    • JsonResponse是HttpResponse的一个子类
    • Content-Type为application/json
    • 默认情况下,只能传输字典类型的数据,如果要传输其他类型的数据时,需要添加safe=True,没有该参数时,会报TypeError的异常
    • 与ajax进行通信时,两边都不需要序列化和反序列化操作
  • 相关阅读:
    常用快捷键知识汇总
    按照给定区间产生指定数目的随机数—C#
    OC (3) 类 与 类方法 (便利构造器) iOS
    OC (2) 基础知识分析对象,创建类,自定义初始化方法 iOS
    OC (1) 类和对象:ObjectiveC概述、面向对象编程、类和对象、实例变量操作 iOS
    OC (6) Block、数组高级:Block语法、Block使用、Block实现数组排序 iOS
    OC (7) 类的扩展 iOS
    OC (5) 字典、集、数组排序:字典类、集合类、数组数组排序、字典、集合的快速遍历、数组排序 iOS
    OC (4)NSString、NSArray、NSNumber、使用苹果帮助文档、值对象 iOS
    jquery 里 $(this)的用法
  • 原文地址:https://www.cnblogs.com/jjzz1234/p/11619967.html
Copyright © 2011-2022 走看看