zoukankan      html  css  js  c++  java
  • web项目ajax技术一些总结

          WEB项目中,最主要的就是前后端间的联络。有时需要不进行页面跳转的前提下请求后端方法(action),就需要用到ajax。

          在这个博客中,我用到的都是原生的js的ajax,不是很喜欢用jquery的ajax,如果以后用到了,再补充。首先,案例就是本博客的博文删除功能。在个人空间,点击文章题目旁边的删除按钮,就会自动进行ajax请求,后端方法。

         <button type="button" id=${article.id} onclick="button_Click_1(this)">删除</button>

         js代码:

            var oAjax = null;
            // 页面加载同时,即创建ajax对象
            if(window.XMLHttpRequest){
                oAjax = new XMLHttpRequest();
            } else {
                oAjax = new ActiveXObject('Microsoft.XMLHTTP');
            }
            
            // 点击删除按钮对应的javascript方法,该方法里进行ajax请求
            function button_Click_1(btn) {
                var delete_id = btn.id;
                url = "<%=basePath %>article/delete.form?id=" + delete_id; 
                oAjax.open('POST', url, true);
                oAjax.send();
                oAjax.onreadystatechange = function() {  
                    if(oAjax.readyState == 4) {  
                        if(oAjax.status == 200) {    
                            alert("delete successfully.");
                            location.reload(); 
                         } else {
                             alert("delete failed");
                         }
                    }
                };
    
            }

        

         值得注意一点是,删除文章id的传递。首先将article.id赋给button的id,之后js代码中var delete_id = btn.id一句即可获得要删除文章的id。这个id作为参数拼接进url,ajax请求发送即可。

         上面的例子其实是很简单的,ajax方面比较麻烦,但却非常实用的方面,其实是参数和返回值。如果要传输的是一个对象,该怎么做?很多时候,我们都已json的数据格式,进行传输。所以,有时我我们需要进行string和json之间的类型转换。

          JSON.parse(str)(用于从字符串中,解析json对象)和JSON.stringify(object)(用于从一个对象解析出字符串)。

          传递参数一种就是,拼接url,另一种就是组合成json格式做参数,然后发送。

         思路 可参考下面代码:

         function Person(name, age) {   

               this.name  =  name;   

               this.age  =  age;   

         } 

         ....

         var person = new Person("Alice", 12);   

         var pars = "person=" + person.toJSONString();   

         var url = "/...../......";   

         var mailAjax = new Ajax.Request(   

            url, {   

                     method: 'get',   

                     parameters: pars,   

                     onComplete: jsonResponse   

            });   

        返回值的获取,代码可参考:

         //结合上述删除博文的例子

          .......

          if (XMLHttpReq.readyState == 4) {

           if (XMLHttpReq.status == 200) {

                    var text = XMLHttpReq.responseText;

                    console.log(text);

               }

           }

         至于后端对json的操作,那就是JSONObject类了。

  • 相关阅读:
    XGBoost原理解析
    变分贝叶斯学习(variational bayesian learning)及重参数技巧(reparameterization trick)
    Tensorflow Probability Distributions 简介
    树形dp--hdu 1520 anniversary party
    线段树II--区间修改
    leetcode---different ways to add parentheses
    线段树
    实现最大堆
    编写支持对齐分配的malloc和free函数
    指针和引用的区别,指针和数组的区别
  • 原文地址:https://www.cnblogs.com/rixiang/p/6059312.html
Copyright © 2011-2022 走看看