我有一个设计决定要做。
在我的 web(ajax) 应用程序中,我们需要决定应该将用户界面逻辑放在哪里?
是否应该完全通过 javascript 加载(纯单页)。只有数据来来去去。
或者
服务器是否应该发送一些通过 javascript 翻译的格式 (XML) 以动态创建丰富的用户界面。(半ajax)。所以一些数据和用户界面来来去去。
哪个选项更好?(速度,易于开发,平台独立性)
谢谢。
我有一个设计决定要做。
在我的 web(ajax) 应用程序中,我们需要决定应该将用户界面逻辑放在哪里?
是否应该完全通过 javascript 加载(纯单页)。只有数据来来去去。
或者
服务器是否应该发送一些通过 javascript 翻译的格式 (XML) 以动态创建丰富的用户界面。(半ajax)。所以一些数据和用户界面来来去去。
哪个选项更好?(速度,易于开发,平台独立性)
谢谢。
几个月前我也面临过类似的困境。正如 Lennart(上图)所说,如果您的应用程序更加桌面化,那么选择睡衣或类似的库是有意义的。睡衣提供的最大优势之一是逻辑上分离的后端和前端代码。IMO 这非常重要。
如果您的应用程序不像桌面应用程序(就像我们的应用程序那样),那么多页面提供更多优势,例如单个更改不会破坏整个应用程序,更易于维护等。您可能要考虑让您的应用程序服务器服务 json 和其他 web服务器提供静态内容和 js。Js 会向 json 应用服务器请求数据。通过这种方式,我们设法将前端和后端分开。此外,我们选择 mootools 作为 js 库而不是睡衣。当然,这取决于您的口味和应用需求。我们确实使用了 python 模板服务器端模板,但在编译时不像通常的方法那样在运行时使用。这需要稍微改变我们的想法,但提供了许多优势。
我最终告诉你我的故事,但我认为它是相关的,希望能有所帮助。
IMO,这主要取决于它是哪种应用程序。它更像是一个桌面应用程序吗?那么单页可能会很好。拥有 Ajax 客户端在很大程度上与使用框架具有相同的缺点,但在桌面风格的应用程序中这不是一个大问题。
如果您的第二个选项更像是一个具有许多不同页面和不同内容的传统网站,那么您的第二个选项会更好,然后您希望对不同的内容有单独的 URL。但是,制作一个 Ajax 应用程序一开始可能不会给您带来那么多。在页面上放置一些 Ajax 可能会很有用,但使用 Ajax 加载所有数据可能不会给您的应用程序添加任何内容,只会让它变慢。
最大的影响是你是否关心初始页面加载时间。如果您不介意在页面加载时拥有所有 UI,那么您的应用程序可以通过穿梭数据而不是 UI 来提高响应速度。如果您想要更快的加载并且不介意更大的 AJAX 请求,发送一些 UI 标记也不错。如果您有服务器能力来预渲染 UI 和数据并将完全准备好的标记数据发送给用户,他们的浏览器将执行得更快,并且初始页面加载应该很快。
你选择哪门课程应该取决于手头的任务。并非所有请求都需要以相同的方式处理。
哪个选项更好?(速度,易于开发,平台独立性)
平台独立性,如果你的意思是跨浏览器兼容性,是使用睡衣的一个巨大理由,因为 python 代码包含一个理智的覆盖基础设施,它可以为你处理一切。不再有 JS 兼容性类。
无论如何,睡衣就是加载客户端应用程序,然后仅将 json-rpc 用于数据。这是因为它更快(一旦加载应用程序),更容易分离服务器和客户端,更容易维护,因为所有 UI 代码都在一个地方的小部件中。
我见过像 DokuWiki 这样的东西,它使用 php 脚本来提供 javascript,我的第一个想法是“为什么?” 但我猜它工作得很好。如果您主要有静态页面,偶尔会有一些 JS 进行装饰,这可能是有道理的。