Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
直接从ajax reqest加载HTML,还是克隆模板并使用javascript插入数据?_Javascript_Ajax - Fatal编程技术网

直接从ajax reqest加载HTML,还是克隆模板并使用javascript插入数据?

直接从ajax reqest加载HTML,还是克隆模板并使用javascript插入数据?,javascript,ajax,Javascript,Ajax,我正在处理一个类似于论坛的页面,其中在线程的页面之间进行更改会从ajax请求中提取html并将其插入到div容器中 我的问题是,通过json检索获取基本数据,然后克隆一个消息模板并将所需的数据插入到该模板中会更快吗?几乎可以肯定,在客户端和服务器之间传输的信息更少,速度会更快。开发时间是另一回事。几乎可以肯定,由于客户端和服务器之间传输的信息较少,开发速度更快。开发时间是另一回事。在我看来,您可能面临两种间接费用: 跨Ajax请求的纯HTML将花费比原始数据更长的时间,但一旦到达客户端,就不会进

我正在处理一个类似于论坛的页面,其中在线程的页面之间进行更改会从ajax请求中提取html并将其插入到div容器中


我的问题是,通过json检索获取基本数据,然后克隆一个消息模板并将所需的数据插入到该模板中会更快吗?

几乎可以肯定,在客户端和服务器之间传输的信息更少,速度会更快。开发时间是另一回事。

几乎可以肯定,由于客户端和服务器之间传输的信息较少,开发速度更快。开发时间是另一回事。

在我看来,您可能面临两种间接费用:

  • 跨Ajax请求的纯HTML将花费比原始数据更长的时间,但一旦到达客户端,就不会进行处理
  • 原始数据不会花费普通HTML那么长的时间,但需要客户端进行一些处理才能将其插入HTML模板。这真的取决于你怎么做

  • 我会选择选项2——任何减少发送给客户的数据量的机会都应该被利用。只是我的意见…

    在我看来,您可能面临两种间接费用:

  • 跨Ajax请求的纯HTML将花费比原始数据更长的时间,但一旦到达客户端,就不会进行处理
  • 原始数据不会花费普通HTML那么长的时间,但需要客户端进行一些处理才能将其插入HTML模板。这真的取决于你怎么做

  • 我会选择选项2——任何减少发送给客户的数据量的机会都应该被利用。只是我的意见…

    通常我只从后端发送JSON数据,然后根据自己的喜好将其插入HTML页面

    IMHO这将后端与前端稍微分离,并使服务器端API更具可重用性/通用性

    我在网站中放置预定义的html部分,然后用JSON数据填充这些部分。我最近开发了一个可以浏览图像的应用程序。每次总是10张图片。html如下所示:

    <table>
        <tr>
            <td id="img_0"></td>
            <td id="img_1"></td>
            <td id="img_2"></td>
            ....
            <td id="img_9"></td>
        </tr>
    </table>
    
    然后通过创建dom节点将其插入html页面:

    for(var i = 0; i < response.comments.length; i++) {
        var currentComment = response.comments[i];
    
        var commentDiv = document.createElement('div');
        commentDiv.className = "comment"
        commentDiv.innerHTML = currentComment.text;
    
        document.getElementById('commentContainer').appendChild(commentDiv);
    }
    
    for(var i=0;i
    但这通常不是我的选择:在我看来,使用document.createElement('div')构建复杂的HTML非常烦人

    存在Javascript模板引擎,这可能会使它更容易,但我从未使用过

    在本例中,在服务器端构建完整的、可能很复杂的HTML对我来说似乎要好得多

    有了GZIP,您可以减少通过网络发送的数据量,有了巧妙的缓存策略,您可以降低服务器负载


    在您的案例中,第二种方法(从服务器获取生成的HTML)似乎是更好的方法。但如果没有更完整的信息,很难判断


    这是没有明确的法律,所以你们的差异会有所不同。到目前为止,我在AJAX web应用程序中的工作经验。

    通常我只从后端发送JSON数据,然后将其插入HTML页面,但我喜欢

    IMHO这将后端与前端稍微分离,并使服务器端API更具可重用性/通用性

    我在网站中放置预定义的html部分,然后用JSON数据填充这些部分。我最近开发了一个可以浏览图像的应用程序。每次总是10张图片。html如下所示:

    <table>
        <tr>
            <td id="img_0"></td>
            <td id="img_1"></td>
            <td id="img_2"></td>
            ....
            <td id="img_9"></td>
        </tr>
    </table>
    
    然后通过创建dom节点将其插入html页面:

    for(var i = 0; i < response.comments.length; i++) {
        var currentComment = response.comments[i];
    
        var commentDiv = document.createElement('div');
        commentDiv.className = "comment"
        commentDiv.innerHTML = currentComment.text;
    
        document.getElementById('commentContainer').appendChild(commentDiv);
    }
    
    for(var i=0;i
    但这通常不是我的选择:在我看来,使用document.createElement('div')构建复杂的HTML非常烦人

    存在Javascript模板引擎,这可能会使它更容易,但我从未使用过

    在本例中,在服务器端构建完整的、可能很复杂的HTML对我来说似乎要好得多

    有了GZIP,您可以减少通过网络发送的数据量,有了巧妙的缓存策略,您可以降低服务器负载


    在您的案例中,第二种方法(从服务器获取生成的HTML)似乎是更好的方法。但如果没有更完整的信息,很难判断


    这是没有明确的法律,所以你们的差异会有所不同。就我目前在AJAX web应用程序中的工作经验而言。

    您指出的可移植性方面可能会在今后的工作中派上用场,感谢您的全面响应!您指出的可移植性方面可能会在将来派上用场,感谢您的全面响应!
    for(var i = 0; i < response.comments.length; i++) {
        var currentComment = response.comments[i];
    
        var commentDiv = document.createElement('div');
        commentDiv.className = "comment"
        commentDiv.innerHTML = currentComment.text;
    
        document.getElementById('commentContainer').appendChild(commentDiv);
    }