在一个数据库驱动的网络应用程序,什么应该的用户看到数据库时不可用的?
-
13-09-2019 - |
题
如果网络的应用程序依赖于一个数据库,以提供动态内容,这些内容是不可用于无论任何原因(数据库服务器停机,等等), 什么是优选方法,用于处理这种情况?
- 重定向游客到一个自定义404页?
- 显示的网页,但无论如何,包括一些种类的错误消息的内容,否则是什么?
- 显示一个有关的网页,具有静态的内容?
- 其他的?
我的理解是正确的错误记录应该发生,以及通知的网站管理员和/或系统管理员。我最感兴趣的最佳做法是什么终端用户应该看到在这种情况。
解决方案
#3如果你能(例如快照动态的内容所采取的每20分钟),而是使它清楚地表明,它是静态的内容 <time> ,并将刷新,尽快系统的问题得到解决。
#2如果不可以,只要错误是人类的可读性和不文字重新打印的一个例外是堆跟踪从Java或somesuch.
其他提示
不管你做什么, 不不 返回404-你的申请不可能正常工作,但你不要给人的印象是,该网址是错误的。除了别的东西,这可能有负面影响你的网站的搜索引擎优化。
如果你要回一些HTTP状态的其它超过200,那么我建议503"服务不可用"的反应。这更多的是指示性的一个临时的故障的应用程序,而不是东西是错误的,与HTTP请求。
我想这取决于如何绑在数据库内容的整个网页。例如,在我们的网络应用程序,如果该数据库下来然后有没有方法的认证;我们唯一的度假酒店将是一个自定义的错误屏幕的效果'我们有问题现在;通过停止以后再次'.
现在;如果动态的内容类似于当天的报价上的一大部分是静态的文件,那么一个简单的错误消息,在地方内容;的作为或不作为动态的内容一起将是适当的。
如此;它取决于什么样的服务,该网页提供,和是否可以提供有用的东西没有后台.
我认为#3可能是最好的,但并不总是可行的。如果这是不可能的,某些种类的"技术上的困难,请站过..."可能更好(显然,你可以改变措辞要更好的东西).只要避免实际上的打印错误:ERR_123/"SIGSEGV"!(或类似的东西)在很大的红色信件。它使用户觉得您的应用程序被破坏,他们可能不回来了。