【问题标题】:Best practice for updating list on website [closed]更新网站列表的最佳实践[关闭]
【发布时间】:2016-03-06 23:20:49
【问题描述】:

我创建了一个 ASP.NET MVC 应用程序。我们有一个列表,其中显示了当前在数据库中的所有项目。我们还有一个按钮,它显示一个弹出对话框,您可以在其中创建另一个条目。我们希望在创建此项目时将其添加到列表中。现在我的问题是,以下哪种方法更适合:

  • 手动(通过 javascript)将项目添加到列表中。我担心的是,这感觉很安静/不是很好的做法。

  • 正在重新加载页面,因此所有条目都从数据库中重新加载。

就性能和“良好实践”而言,哪种方法更适合此目的(我应该提到,该列表可能会徘徊在 100-200 项标记附近)

提前致谢!

【问题讨论】:

  • 将数据异步加载到页面并没有错——大多数网站都是这样做的,包括这里。此外,“最佳实践”一词经常被用作避免思考的一种方式 - 而是寻找最适合您需求的解决方案。

标签: c# html ajax list model-view-controller


【解决方案1】:

我将首先能够提交表单并重新加载页面。

您可以添加使用 ajax 提交表单的功能,然后如果表单通过验证并返回成功消息,则通过 javascript 将新项目添加到列表中。

这样,如果有人禁用了 javascript,他们仍然可以提交表单,但他们只会刷新页面。或者,如果 ajax 调用失败,您仍然可以求助于页面刷新。

【讨论】:

  • 如果他们禁用了 javascript,那么他们就不配出现在 21 世纪的互联网上。
  • 禁用 javascript 有一些好处。例如没有广告,没有分析跟踪你的一举一动,提高安全性,更快的网站,因为没有运行/处理 javascript。
  • 全面禁止 javascript 也会破坏大多数网站的功能。我知道有像 NoScript 这样的工具是专为注重安全性而设计的,但 javascript 已经成为现代互联网的基本组成部分,不能随便摆脱。
【解决方案2】:

我会异步重新加载列表。根据其编码方式,这可以通过服务器端代码或通过 javascript ajax 调用来完成。

【讨论】:

    【解决方案3】:

    您可以对服务器进行回调,并且在该回调成功后,您可以继续在列表中添加该新项目。无需刷新整个页面。

    类似这样的东西(取自here):

    $.ajax({ url: '/Controller/Action/Id',
         success: function(data) { alert(data); }, 
         statusCode : {
             404: function(content) { alert('cannot find resource'); },
             500: function(content) { alert('internal server error'); }
         }, 
         error: function(req, status, errorObj) {
               // handle status === "timeout"
               // handle other errors
         }
    

    });

    【讨论】:

      猜你喜欢
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-24
      • 2011-08-29
      • 1970-01-01
      • 2010-11-10
      相关资源
      最近更新 更多