2011-01-30 226 views
2

我有一个设计决定。富Web客户端与瘦客户端

在我的web(ajax)应用程序中,我们需要决定应该在哪里放置用户界面逻辑?

它应该完全通过JavaScript加载(纯单页)。和只有数据来去。

服务器是否应发送一些格式(XML),它通过JavaScript动态创建丰富的用户界面的翻译。 (半ajax)。所以一些数据和用户界面来来去去。

哪个选项更好? (速度,易于开发,平台独立)

谢谢。

回答

1

最大的影响是您是否关心初始页面加载时间。如果您不介意在页面加载时拥有所有UI,那么您的应用只需穿梭数据即可,而不是UI。如果你想要更快的加载速度并且不介意更大的AJAX请求,发送一些UI标记并不错。如果您有服务器电源预先呈现UI数据并将完全准备好的标记数据发送给用户,则他们的浏览器将更快地执行,并且初始页面加载速度应该很快。

你选择哪一门课程应该取决于当前的任务。并非所有的请求都需要以相同的方式处理。

2

IMO,它主要取决于它是什么样的应用程序。它更像桌面应用程序吗?那么单个页面可能会运行良好。在很大程度上拥有一个Ajax客户端具有same drawbacks as using frames,但在桌面式应用程序中这不是一个大问题。

如果第二个选项更像是一个传统网站,它包含许多不同内容的不同页面,那么您的第二个选项会更好,然后您希望将不同的内容分开。但是,制作一个Ajax应用程序可能并不能为您带来一切。在页面上添加一些Ajax可能会很有用,但加载全部带有Ajax的数据可能不会为您的应用添加任何内容,除非使其更慢。

2

几个月前我面临类似的困境。正如Lennart(上文)所说,如果您的应用更具个性化,那么去睡衣或类似的图书馆是有道理的。 睡衣的最大优点之一是提供逻辑上完全分离的后端和前端代码。海事组织这是非常重要的。

如果你的应用程序不像桌面应用程序(就像我们的那样),那么multipage提供了更多的优势,比如单个更改不会打破整个应用程序,更容易维护等等。你可能想要考虑可以让你的应用程序服务器服务json和其他web服务器提供静态内容和js。 Js会向json应用服务器请求数据。这样,我们设法隔离了前端和后端。此外,我们选择mootools作为睡衣上的js库。当然,这取决于你的口味和应用需求。我们确实使用python模板服务器端模板,但是在编译时并不像通常的方法那样在运行时。这需要稍微改变我们的想法,但提供了许多优点。

我最后告诉你我的故事,但我认为这是相关的,希望有所帮助。

0

哪个选项更好?(速度快,易于开发,平台无关性)

平台独立性,如果你的意思是跨浏览器兼容,是一个巨大的理由来使用睡衣,因为Python代码有一个用于处理一切都是为了你一个健全的覆盖基础设施。没有更多的JS兼容性类。

无论如何,睡衣是关于加载客户端应用程序,然后使用json-rpc仅用于数据。这是因为速度更快(一旦加载应用程序),更容易将服务器和客户端分开,更容易维护,因为所有UI代码都位于一个位置的小部件中。

我见过像DokuWiki这样使用php脚本来提供javascript的东西,我的第一个想法是“为什么?但我猜测它工作得很好。这可能是有道理的,如果你大多有静态页面偶尔有一点点的装饰。