Javascript 从ajax调用中获取HTML或JSON响应,这是好的?

Javascript 从ajax调用中获取HTML或JSON响应,这是好的?,javascript,jquery,html,ajax,json,Javascript,Jquery,Html,Ajax,Json,我的项目中有一个功能,我在其中实现了搜索功能 在通过ajax提交表单时,我需要在分区中显示所有结果 我有两种方法可以做到这一点 将JSON数据作为ajax响应获取,并将其绑定到HTML元素 我还可以从ajax调用中获得完全格式化的HTML响应,并可以直接将其绑定到搜索页面上的result div 那么,哪种方式是可以暗示的呢 我总是做JSON响应。在我看来,这是一种更加一致和灵活的方式,因为您可以返回比仅显示更多的数据。如果仍要返回HTML,也可以通过JSON响应返回: { error:

我的项目中有一个功能,我在其中实现了搜索功能

在通过ajax提交表单时,我需要在分区中显示所有结果

我有两种方法可以做到这一点

  • 将JSON数据作为ajax响应获取,并将其绑定到HTML元素
  • 我还可以从ajax调用中获得完全格式化的HTML响应,并可以直接将其绑定到搜索页面上的result div

  • 那么,哪种方式是可以暗示的呢

    我总是做JSON响应。在我看来,这是一种更加一致和灵活的方式,因为您可以返回比仅显示更多的数据。如果仍要返回HTML,也可以通过JSON响应返回:

    {
       error: false
       html: "<div>Done!</div>"
    }
    
    {
    错误:false
    html:“完成!”
    }
    
    要使服务(服务器端脚本)最具可重用性,甚至可以将其转换为
    API
    ——建议的方法是将
    JSON
    数据(从数据模型转换)返回前端,在前端使用JavaScript可以将数据填充到
    HTML


    至于
    HTML
    -您当然可以让服务器以
    HTML
    的形式返回响应(在标题中设置正确的mime和内容类型),但这使服务器可以控制UI层,并且界面和服务器/db之间的分离没有正确平衡…

    任何一个选项都可以,这取决于html的数量以及需要对html进行多少服务器端处理。如果它只是一个div和一个需要插入的值,那么我说只使用JSON。JSON方法将更加轻量级(消耗更少的带宽,并保持服务器作为API的角色,可转移到非web页面请求)


    如果你需要做很多服务器端的处理和组装,你所返回的是一个子页面,那么你可以考虑服务器上的HTML。在本例中,您可以读取并发送一个部分html文件(在相关位置插入数据),而不是动态地从字符串构建html。如果您有一个部分文件,那么您可以使用标准的html编辑器对其进行编辑和检查,您可以轻松地查看html布局,并将UI方面与业务逻辑分开

    我会将其作为JSON发送并构建HTML客户端,原因如下:

    • JSON负载将更轻,因此通过网络发送的速度更快

    • API变得更加可重用(如果您想连接其他呈现方式不同的客户端等)

    • 如果您在客户端构建HTML,那么可能更容易利用模板库(例如JQuery模板),或者更好地直接将数据绑定到UI(例如)


      • 我也会将其作为JSON响应发送

      • 正如emiolioicai在他的代码中所建议的那样,使用JSON可以轻松地处理错误。例如:
      • { 错误:正确 错误消息:参数错误 }
      • 如果您定义HTML客户端,将来您将能够使用相同的AJAX请求,并在网站的另一部分以不同方式自定义HTML
        您可以始终将HTML放入json值中,并且仍然在其中包含错误处理值是的,当然@Coulton:)这取决于应用程序的结构:您可以决定是在特定视图中定义HTML,每次都不同,还是将HTML放入json中,并具有用于错误处理的通用视图。 { error: true error-message: wrong parameters }