我计划建立一个主要与Ajax一起使用的网站,但我担心我的PHP代码结构的速度。

第一种技术

我已经初始化了所有从数据库中查询的数据值,并与HTMl,CSS选择器组合为方法中的变量,然后将其回显到客户端浏览器,如下所示。

这两种技术我都使用Ajax来响应所有数据,但是对于这种方法,我将Ajax dataType用作HTML,因为我的PHP与客户端脚本一起回显。

public function last_update() {

    $this->select_cat = $this->select_cats('tmv');
    $out = '';
    $out .= '<div class="soc"><div class="sr"><div class="s"><span class="">Newest and Last update</span></div></div></div><div id = "cat_menu2" class = "owl-carousel owl-theme">';
    foreach ($this->select_cat as $k => $cat_val) {
        if ($cat_val) {
            $out .= '<div style = "border-right:1px solid rgba(69, 69, 69, 0.48);"><div class = "row mi"><a>Hello man dfds dfgdfg </a></div></div>';
        } else {
            $out .= '<div style = "border-right:1px solid rgba(69, 69, 69, 0.48);"><div class = "row mi"><a>Hello man dfds dfgdfg </a></div></div>';
        }
    }
    $out .= '</div>';
    return $out;
}


第二种技术

另一方面,如果我在获取所有数据后使用javascript和Ajax方法仅查询数据库中的数据有什么不同,我将使用Javascript,CSS,HTM来构成或制作客户端视图的布局。

    <script>
    $(window).ready(function () {

        var prodId = '', prodName = '', prodPrice = '', prodImg = '', prodSImg = '';
        var data_array = [];
        $.ajax({
            type: "GET",
            url: "<?php echo base_url('main/fuck'); ?>",
            dataType: "json",
            cache: false,
            success: function (data, st) {
                if (st == 'success') {
                    $.each(data.data, function (i, obj) {
                        obj = {
                            prodId: obj.prodId,
                            prodName: obj.prodName,
                            prodPrice: obj.prodPrice,
                            prodImg: obj.prodImg,
                            prodSImg: obj.prodSImg,
                        }
                        data_array.push(obj);
                    });
                }
                console.log(data_array); // I will using html,css to make up or create layout of my task here and then append to some elements
            }
        });
    });
</script>

最佳答案

如果您使用的是AJAX,我们应该记住的一件事就是保持所有内容都是轻量级的。

这就是说,应该省略所有不是真正必需的数据或可以在客户端上处理的数据,并在客户端上进行处理。

在您的ajax响应中包括任何html代码不是一个好习惯,它只会使您的响应非常膨胀。因此,最好只输出原始数据,这些原始数据可以是JSON格式并在使用Javascript之后进行处理。

就您而言,您提到的第二种技术比第一种更为可取。

例:

JSON响应(sample.php):

[{
    name: "Hello",
    age: 18
},
{
    name: "World",
    age: 21
}]


JavaScript(jQuery):

$.ajax({
    type: "GET",
    url:  "sample.php",
    dataType: "json",
    success: function (data) {

        for(var i = 0; i < data.length; i++) {

            var $con = $("<div>");

            // name
            var $name = $("<div>");
            $name.html(data[i].name);

            // age
            var $age = $("<div>");
            $age.html(data[i].age);

            $("#user").append($con);

            $con.append($name);
            $con.append($age);

        }

    }
})


HTML:

<div id="user">
</div>

关于javascript - 在使用Ajax仅检索数据库中的数据之间,如何更好地从html结构中的数据库中检索数据的技术?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34804226/

10-16 13:30
查看更多