Ajax

Ajax的特性可以实现异步提交与局部刷新。

Ajax是一门js的技术 基于原生js开发的,但是用原生的js写代码过于繁琐, 我们在学的时候 只学如何用jQuery实现ajax。

AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。(这一特点给用户的感受是在不知不觉中完成请求和响应过程)

异步提交

同步异步:描述的任务的提交方式

同步:提交任务之后 原地等待任务的返回结果 期间不干任何事儿

异步:提交任务之后 不愿地等待 直接执行下一行代码 任务的返回通过回调机制

局部刷新

一个页面 不是整体刷新 而是页面的某个地方局部刷新

实例

1.展示一个前端页面 页面上有三个输入框 前两个框输入数字 点击按钮朝后端发请求

页面不刷新的情况下 完成数字的加法运算

方法1:不用JSON

前端:

+

=

$('#b1').on('click', function () {

$.ajax({

// 1.朝后端发送数据的地址,空即为当前地址

url: '', //提交的目标地址

//2. 发送的请求方式

type: 'post',

//3 发送的数据

data: {'t1': $('#t1').val(), 't2': $('#t2').val()},

success: function (data) {

//由于ajax是异步提交,所以需要一个回调函数,在提交的结果返回到时执行

//这里的data是views那边返回的结果

$('#t3').val(data)

}

})

})

后端:

class Ajax(View):

def post(self, request):

if request.is_ajax():

t1 = request.POST.get('t1')

t2 = request.POST.get('t2')

res = int(t1) + int(t2)

return HttpResponse(res)

def get(self, request):

return render(request, 'ajax.html')

方法二:JSON交互数据

前端:

+

=

$('#b1').on('click', function () {

$.ajax({

// 1.朝后端发送数据的地址,空即为当前地址

url: '', //提交的目标地址

//2. 发送的请求方式

type: 'post',

//发送数据的格式

contentType:'application/json',

//3 发送的数据

data: JSON.stringify({'t1': $('#t1').val(), 't2': $('#t2').val()}),

success: function (data) { //这里的data是views那边返回的结果

$('#t3').val(data)

}

})

})

后端:

class Ajax(View):

def post(self, request):

if request.is_ajax():

json_bytes=request.body

json_str=json_bytes.decode('utf8')

json_dic=json.loads(json_str)

print(json_dic,type(json_dic))

res=int(json_dic.get('t1'))+int(json_dic.get('t2'))

return JsonResponse(res,safe=False)

注:

form表单的默认的提交数据的编码格式是urlencoded(username=admin&password=123)

django后端针对username=admin&password=123的urlencoded数据格式会自动解析,然后将结果打包给request.POST 用户只需要从request.POST即可获取对应信息。

传输文件时django后端针对formdata格式类型数据 也会自动解析,但是不会方法request.POST中而是给你放到了request.FILES中。

总结:django后端针对不同的编码格式数据 会有不同的处理机制以及不同的获取该数据的方法

序列化组件

1.将用户表的数据 查询出来 返回给前端

给前端的是一个大字典 字典里面的数据的一个个的字段

from django.core import serializers

def ser(request):

user_queryset = models.Userinfo.objects.all()

# [{},{},{},{}]

# user_list = []

# for user_obj in user_queryset:

# user_list.append({

# 'username':user_obj.username,

# 'password':user_obj.password,

# 'gender':user_obj.get_gender_display(),

# })

res = serializers.serialize('json',user_queryset)

print(res)

return render(request,'ser.html',locals())

sweetalert+ajax

ajax + sweetalert

$("#b55").click(function () {

swal({

title: "你确定要删除吗?",

text: "删除可就找不回来了哦!",

type: "warning",

showCancelButton: true, // 是否显示取消按钮

confirmButtonClass: "btn-danger", // 确认按钮的样式类

confirmButtonText: "删除", // 确认按钮文本

cancelButtonText: "取消", // 取消按钮文本

closeOnConfirm: false, // 点击确认按钮不关闭弹框

showLoaderOnConfirm: true // 显示正在删除的动画效果

},

function () {

var deleteId = 2;

$.ajax({

url: "/delete_book/",

type: "post",

data: {"id": deleteId},

success: function (data) {

if (data.code === 0) {

swal("删除成功!", "你可以准备跑路了!", "success");

} else {

swal("删除失败", "你可以再尝试一下!", "error")

}

}

})

});

})

sweet+alert+ajax,Ajax相关相关推荐

  1. 《ASP.NET AJAX程序设计——第II卷:客户端Microsoft AJAX Library相关》前言

    章节列表:http://www.cnblogs.com/dflying/archive/2007/05/18/751741.html 在最近的一年以及今后的三五年内,我们有理由相信Web应用程序将受到 ...

  2. 给动态生成的按钮添加ajax,Ajax/Javascript动态创建按钮的问题

    你没有指定一个事件处理程序,您调用它.函数createButtons马上被调用,并且它返回的任何东西都被赋值给window.onload. window.onload = createButtons( ...

  3. jQuery ajax - ajax()

    jQuery ajax - ajax() 方法 jQuery Ajax 参考手册 实例 通过 AJAX 加载一段文本: jQuery 代码: $(document).ready(function(){ ...

  4. ajax实现表单验证 html,Ajax+ajax做的表单验证

    //Ajx实现异步示例,blur实现失去焦点触发 jQuery('#formname').blur(check); function check(){ alert("开始执行Ajax&quo ...

  5. Ajax 什么是Ajax? Ajax的基本语法

    Ajax 什么是Ajax? AJAX(Asynchronous Javascript And XML)翻译成中文就是"异步Javascript和XML".即使用Javascript ...

  6. AJAX工作原理及其优缺点 1.什么是AJAX? AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页

    参考文章:https://www.cnblogs.com/SanMaoSpace/archive/2013/06/15/3137180.html AJAX工作原理及其优缺点 1.什么是AJAX? AJ ...

  7. 什么是Ajax?Ajax如何发送请求(详)

    本篇来讲关于Ajax的内容,当然还有小伙伴可能不知道该怎么读 "Ajax",它读 "阿贾克斯" ,当然了读法可能因人而异,下面来进入正题,先来了解一下什么是Aj ...

  8. swal如何加入html语言,Sweet Alert弹窗点击确定后执行页面跳转等操作

    可不可以点击 Sweet Alert 弹窗的确定按钮后跳转页面呢?答案是可以的: 首先参考上文,引入 Sweet Alert 所需的文件,我这里写了一个修改密码的确认框. 点及修改后,会弹出修改成功提 ...

  9. html同时执行多个ajax,Ajax方法详解以及多个Ajax并发执行

    AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).javascript 先来一段代码html $.ajax({ type: &q ...

最新文章

  1. 【组队学习】【31期】动手学数据分析
  2. 赠书 | 读懂生成对抗神经网络 GAN,看这文就够了
  3. ACL 2019 | 基于知识增强的语言表示模型,多项NLP任务表现超越BERT(附论文解读)...
  4. 创建与SharePoint 2010风格一致的下拉菜单 (续) 整合Feature Custom Action框架
  5. 解决ubuntu Gvim 菜单乱码
  6. 开发函数计算的正确姿势——运行 Selenium Java
  7. 关于Mybatis的各种配置文件
  8. 前端页面高度和宽度自适应怎么做?
  9. uniapp实战项目仿糗事百科_项目设计最好用的底层思考模型——黄金圈
  10. 【工业控制】PolyWorks培训教程-设备转站
  11. 进程P1、P2、P3、P4和P5的前趋图如下图所示。若用PV操作控制进程P1~P5并发执行的过程,则需要设置6个信号S1、S2、S3、S4,且信号量S1~S4的初值都等于0。下图中a和b处应分别填写(
  12. PHP代码20个实用技巧(转)
  13. matlab fftshift_数字信号处理没有Matlab?用Python一样很爽
  14. 面试问题:SpringMVC的执行流程
  15. 02 HelloWorld案例
  16. 如何固定电脑ip地址
  17. Python统计Java代码行数
  18. Android 系统架构图
  19. 1_Hadoop安装部署及常用配置(HDFS+YARN)
  20. Selenium+Java自动化测试系列教程❤

热门文章

  1. linux 内核空间与用户空间 简介
  2. 查看 centos 版本
  3. docker 占用磁盘空间清理 无用数据卷删除
  4. Linux进程在后台运行的几种方法
  5. java设计模式---三种工厂模式
  6. (三)Amazon Lightsail 部署LAMP应用程序之连接到Lightsail数据库
  7. go语言学习(一)——go语言简介和环境搭建
  8. android 反调试 方案,Android Native反调试—检测TracerPid值
  9. 河南计算机程序大赛,我院成功举办河南省第十一届ACM大学生程序设计竞赛
  10. android 使用perl语言,在Android上用python(Perl、Lua、BeanShell等)编程