如何通过Ajax调用处理大量HTML

时间:2015-12-10 10:50:55

标签: javascript php jquery html ajax

我想知道我做的事情是否合适,但它有效,但我已经找到了一种更好的方法来做到这一点。基本上我是在" Modal-box"中提供用户个人资料。因此,用户单击按钮/链接,此窗口是动态生成的,其内容div将填充AJAX请求的结果。实际上,AJAX请求调用一个从MySQL数据库获取数据的php脚本,通过php输出缓冲区获取HTML模板,并将该文件作为字符串存储在变量中,然后将此变量存储在数组中,json-编码并回声如下:

[ { success: 1, html: "HTML already formatted with data from the PHP script" } ]

在客户端,当我的AJAX调用完成后,我只用html填充我的模态内容div,所以它是这样的:

.done( function ( srv-data ) {

   if ( srv-data.success === 1 ){

      $( "#modal-content" ).html( srv-data.html );

   }

});

这是将HTML用于前端的合理方式吗?或者有更好的方法来做类似的事情?我使用这个解决方案仅仅是因为我需要在数据库中使用大量字段来渲染大量HTML,其他AJAX响应只是通过Object循环并在客户端呈现。

感谢您的时间。

2 个答案:

答案 0 :(得分:0)

试试这个:

CREATE OR REPLACE FUNCTION f_test()
  RETURNS void AS
$func$
BEGIN
   EXECUTE (
   SELECT format(
         'INSERT INTO %I (%s) SELECT %s FROM %I%s'
        , tbl_des
        , string_agg(quote_ident(col_des), ', ')
        , string_agg(quote_ident(col_src), ', ')
        , tbl_src
        , ' WHERE ' || string_agg(condition, ' AND ')) AS sql
   FROM   table3
   WHERE  tbl_des = 'Table2'
   AND    tbl_src = 'Table1'
   GROUP  BY tbl_des, tbl_src
   );
END
$func$ LANGUAGE plpgsql;

你的代码写在test.php上

答案 1 :(得分:0)

我不知道这是否是一种更好的做事方式,但是当我将大量数据传递给模态时,我通常会这样做。

我从服务器发送响应作为JSON。

因此AJAX请求会产生类似这样的内容

{
    amount: 100,
    approved: 0,
    approved_at: "0000-00-00 00:00:00",
    approved_by: "",
    created_at: "2015-12-05 16:24:33",
    id: 2,
    overhead: "dummy data",
    remarks: "Head Approved",
    request_id: 1500002,
    type: "advance",
    updated_at: "2015-12-05 16:29:48",
}

由于我已经有了Modal的结构,我可以使用JQuery将值插入到模态中。

.done(function(data){
var json = jQuery.parseJSON(
$('#proj_id').html(json.proj_id);
$('#overhead').html(json.overhead);
$('#type').html(json.type);
$('#amount').html(json.amount);
$('#projectModal').modal('show');
}

在此方法中,我们只能发送需要从服务器发送的数据,并且处理在客户端进行。因此,网络开销很小。此外,如果我们提供JSON,那么任何类型的客户端都可以使用数据(Android / Web)