• Ajax


    AJAXAsynchronous Javascript And XML)翻译成中文就是异步JavascriptXML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML)。

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

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

    js实现两个数的和:

    ///模板方面/////
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    </head>
    <body>
    {% csrf_token %}
    <p>输入<input type="text" id="t1"></p>
    <p>输入<input type="text" id="t2"></p>
    <p><button class="btn">计算和</button><span class="sum"></span></p>
    </body>
    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js "></script>
    <script>
    $('.btn').click(function () {
    $.ajax({
    url:'/sum2/',
    type:"POST",
    data:({
    csrfmiddlewaretoken:$("[name='csrfmiddlewaretoken']").val(),
    t1:$('#t1').val(),
    t2:$('#t2').val()
    }),
    success:function (sum) {
    var sum=JSON.parse(sum);
    $('.sum').html(sum)

    }
    })
    })

    </script>
    </html>

    ///视图方面/////

    def sum(request):
    # t1=request.GET.get('t1')
    # t2=request.GET.get('t2')
    # print(t1)
    return render(request,'sum.html')


    def sum2(request):
    t1=request.GET.get('t1')
    t2=request.GET.get('t2')


    return HttpResponse(json.dumps(int(t1)+int(t2)))

    用Ajax实现表的删除操作:

    ///////模板方面/////////

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    </head>
    <body>
    <h3>实现计算器的功能</h3>
    <div class="bs-example" data-example-id="contextual-table">
    <table class="table">
    <thead>
    <tr>

    <th>序号</th>
    <th>用户名</th>
    <th>密码</th>
    </tr>
    </thead>
    <tbody>
    {% for user in user_list %}
    <tr class="active">


    <td class="id">{{ user.id }}</td>
    <td>{{ user.username }}</td>
    <td>{{ user.password }}</td>


    <td><button>删除</button></td>
    </tr>
    {% endfor %}
    </tbody>
    </table>
    </div>
    </body>
    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js "></script>
    <script>
    $('button').click(function () {
    $.ajax({
    url:'/list_ajax/',
    type:'get',
    data:({
    id:$(this).parent().parent().children().first().text()
    }),
    success:function (id) {
    var id=JSON.parse(id);

    console.log($(this));
    $('.id').each(function () {
    if($(this).html()==id){
    $(this).parent().remove()
    }
    })
    {# $(this).parent().parent().remove()#}

    }

    })
    })
    </script>
    </html>

    ///////视图方面/////////

    def list(request):
    user_list=models.UserInfo.objects.all()
    return render(request,'list.html',{'user_list':user_list})


    def list_ajax(request):
    id=request.GET.get('id')
    models.UserInfo.objects.filter(id=id).delete()
    return HttpResponse(json.dumps(id))

  • 相关阅读:
    修改requests_html.AsyncHTMLSessions使得支持url参数
    MyBatis查询返回Map示例代码
    java.util.ConcurrentModificationException 异常原因和解决方法
    Springboot整合RabbitMQ(四)——设置消息过期时间TTL
    MySql Lock wait timeout exceeded该如何处理? (转载)
    对开发流程优化的建议
    容器未正常启动-->docker ps看不到,docker ps -a可以看到-->执行命令时出现Container is not running
    Linux下C语言多线程编程
    curl库相关使用
    PCB走线&过孔载流分析
  • 原文地址:https://www.cnblogs.com/qq666666/p/7851116.html
Copyright © 2020-2023  润新知