ajax获取数据后怎么去渲染到页面?

关于,这个问题呢!一直没有在网上找到一个合适答案(可能这问题比较傻,嘿嘿)。今天把自己常用几种方式说下:

第一种:

比较常见的就是直接把字符串拼接,然后插入到元素中。

var html=‘<li>‘ + data.num + ‘</li><li>‘ + data.floor + ‘</li><li>‘ + data.name + ‘</li><li>‘ + data.money + ‘</li>‘;

elem.innerHTML=html;

第二种:

与第一种大致,先创建对象,然后添加到外层对象中

var node=document.createElement("LI");
var textnode=document.createTextNode("Water");
node.appendChild(textnode);
document.getElementById("myList").appendChild(node);

第三种:

可以用网上mvvm框架,数据绑定比如:angular ,vue等 这里不举例子了 哈哈

第四种:

模板的比如 (template.js)

我自己写个小例子,不要喷我啊

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>

    <body>
        <div id="con"></div>
        <script>
            var viewCommand = function() {
                var tpl = {
                    product: ["<div>",
                        "<img src={#srcs#} />",
                        "<p>{#text#}</p>",
                        "</div>"
                    ].join(""),
                    title: [
                        "<div class=‘title‘>",
                        "<div class=‘main‘>",
                        ‘<h2>{#title#}</h2>‘,
                        ‘<p>{#tips#}</p>‘,
                        "</div>",
                        "</div>",
                    ].join("")
                };
                var html = "";
                var formateString = function(str, obj) {
                    return str.replace(/{\#(\w+)#\}/g, function(match, key) {
                        console.log(match + obj[key])
                        return obj[key];
                    })
                };
                var Action = {
                    create: function(data, view) {
                        if(data.length) {
                            for(var i = 0; i < data.length; i++) {
                                html += formateString(tpl[view], data[i])
                            }
                        } else {
                            html += formateString(tpl[view], data);
                        }
                    },
                    display: function(conta, data, view) {
                        if(data) {
                            this.create(data, view)
                        }
                        document.getElementById(conta).innerHTML = html;
                        html = "";
                    }
                };
                return function excute(msg) {
                    msg.param = toString.call(msg.param) == "[object Array]" ? msg.param : [msg.param];
                    Action[msg.command].apply(Action, msg.param);
                }
            }();
            var tit = {
                tips: "飒飒飒飒是",
                title: "安县阿萨斯",

            }
            var product = [{
                "srcs": "../images/qq.png",
                "text": "qqqq"
            }, {
                "srcs": "../images/weixin.png",
                "text": "qq"
            }]
            viewCommand({
                command: "create",
                param: [ tit, "title"]
            })

            viewCommand({
                command: "create",
                param: [ product, "product"]
            })
            viewCommand({
                command: "display",
                param: ["con"]
            })
        </script>
    </body>

</html>

我了解大致就这些,大家可以说说自己的,同时欢迎提问题

时间: 2024-08-02 02:45:24

ajax获取数据后怎么去渲染到页面?的相关文章

Ajax获取数据后append追加到表格内出现格式混乱的错误

Ajax获取数据后append追加到表格内出现追加的数据与表格风格不同的错误: $("#courierTable").append("<tr style='text-align: center'> class='tab-content'") $("#courierTable").append("<tr style='text-align: center'> class='tab-content'") $

select2的使用(ajax获取数据)

最近项目中用到了select2来做下拉框,数据都是通过ajax从后台获取, 支持动态搜索等. 使用到的下拉框分有两种情况: 一种是直接发送ajax请求渲染列表:另一种因为查询回的数据有六万多条,导致整个页面卡顿,所以采用的是先让用户至少输入3个字以后再动态模糊查询数据. 基本的使用方法看官方文档就可以明白,但是在做模糊查询的时候遇到了一些问题,在此记录一下. 第一种情况的下拉框,先是封装了函数获取数据,并拼接了列表模版,然后设置templateSelection即可. function getP

vue 中使用 AJAX获取数据的方法

在VUE开发时,数据可以使用jquery和vue-resource来获取数据.在获取数据时,一定需要给一个数据初始值. 看下例: <script type="text/javascript"> new Vue({ el:'#app', data:{data:""}, created:function(){ var url="json.jsp"; var _self=this; $.get(url,function(data){ _se

jquery通过ajax获取数据,控制显示的数据条数

效果图: 现在我们可以先看它的json数据,如图所示:                然后可以对应我们的代码进行理解. jquery通过ajax获取数据,并通过窗口大小控制显示的数据条数,以及可以根据需求隐掉列数据. <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style> html,body {

用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库

小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢nodejs路由和Ajax之间的数据传输,也就是表单提交,然后在用nodejs把数据写入mysql数据库 用到的东西比较多,但是还是很有趣的 1.安装node.js 安装node.js,直接去官网下载然后根据需求点击下一步就好了 Node.js安装包及源码下载地址为:https://nodejs.org

Ajax 获取数据代码

无刷新获取字符串: Html网页中: <script> //定义异步对象 var xmlHttp; //封装方法 function CreateXMLHTTP() {   try {            xmlHttp = new XMLHttpRequest();        } catch (e) {  xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");      } } window.onload = functio

Ajax提交数据后,清空form表单

按钮不同,页面相同,还需要显示的数据不同,这里会由于页面的缓存问题,导致,每次点开这个页面显示的数据相同. 这不是我们想要的.这就需要清楚表单数据了. 如下: $('#myform')[0].reset(); 注意!!!!!!!这个方法试过不可以,下面的方法才靠谱!! $(':input','#form表单的id') .not(':button, :submit, :reset, :hidden') .val('') .removeAttr('checked') .removeAttr('sel

AJAX获取数据成功后的返回数据如何声明成全局变量

var result=""; $.ajax({ type: "post", url: "../reportRule/main.do?method=selectReportToAdd", data:{}, success: function(msg){ result = msg; alert(result );\\有数据 } }); alert(result)\\无数据 原因: ajax是异步请求,即javascript是非阻塞运行的,在$.aja

vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全

https://segmentfault.com/q/1010000005618139 点击提交,发送请求.但是api:123用于加密的参数,直接暴露了.右键源代码就可以看到 <body> <div class="row"> <div class="col-md-4 col-md-offset-4"> <table class="table table-bordered" id="content