使用jQuery通过JSON显示数据的最佳方式

Cou*_*lin 17 jquery json

我试图通过使用jQuery的Ajax调用找到在我的页面上显示结果的最佳方法,您认为最好的方法是将其作为JSON或纯文本传递吗?我之前使用过ajax调用,但不确定哪个优先于另一个,对于JSON版本,从PHP页面生成的JSON文件读取显示结果的最佳方法是什么.

我知道我会包含一个.each来贯穿它以显示所有内容.

Jay*_*Jay 26

像这样的东西:

$.getJSON("http://mywebsite.com/json/get.php?cid=15",
        function(data){
          $.each(data.products, function(i,product){
            content = '<p>' + product.product_title + '</p>';
            content += '<p>' + product.product_short_description + '</p>';
            content += '<img src="' + product.product_thumbnail_src + '"/>';
            content += '<br/>';
            $(content).appendTo("#product_list");
          });
        });
Run Code Online (Sandbox Code Playgroud)

将采用由产品密钥返回的PHP数组生成的json对象.例如:

Array('products' => Array(0 => Array('product_title' => 'Product 1',
                                     'product_short_description' => 'Product 1 is a useful product',
                                     'product_thumbnail_src' => '/images/15/1.jpg'
                                    )
                          1 => Array('product_title' => 'Product 2',
                                     'product_short_description' => 'Product 2 is a not so useful product',
                                     'product_thumbnail_src' => '/images/15/2.jpg'
                                    )
                         )
     )
Run Code Online (Sandbox Code Playgroud)

要重新加载列表,您只需执行以下操作:

$("#product_list").empty();
Run Code Online (Sandbox Code Playgroud)

然后使用新参数再次调用getJSON.

  • 出于性能原因,$(content).appendTo("#product_list")应该在循环之外.附加到DOM很慢,应该只执行一次. (2认同)

小智 11

JQuery为Ajax提供了内置的json数据类型,并将数据转换为对象.PHP%还具有内置的json_encode函数,该函数将数组转换为json格式的字符串.节省了大量的解析,解码工作.