我对Alfresco的这些条款有点困惑。 存储库层,Web层(Webscripts和模板),服务器端和客户端(Javascript)之间的区别以及它们之间的关系。 例如,Web层Webscript可以是服务器端还是客户端?
答案 0 :(得分:5)
存储库层:这是你的alfresco.war。这使得Alfresco存储库工作。它还包括一个名为Alfresco Explorer的旧Web客户端,此时此时大多未使用。
分享等级:这是你的分享.war。 Alfresco Share是人们需要进行基本文档管理或团队协作时使用的Web客户端。
这两个都是Web应用程序,因此它们在“Web层”中运行。
Alfresco Web脚本框架用于提供RESTful接口。可能令人困惑的是,存储库层和共享层都包含Web脚本框架。
Web脚本框架是模型 - 视图 - 控制器(MVC)模式的实现。控制器是用服务器端JavaScript或Java编写的。因此,您可以使用Alfresco编写服务器端JavaScript。还有其他地方。
服务器端JavaScript意味着JavaScript完全在服务器上运行,无论是在alfresco.war中运行还是share.war无关紧要。关键是它完全是服务器端 - 没有涉及Web浏览器。
最后,客户端JavaScript是在JavaScript解释器中运行的JavaScript,该解释器内置于客户端计算机上运行的Web浏览器。像今天的大多数Web应用程序一样,Alfresco Share使用了大量的客户端JavaScript。
因此,与Alfresco Share的典型交互可能如下所示:
浏览器请求页面。共享Web应用程序中的Web脚本框架运行一些服务器端JavaScript,并最终以在浏览器中呈现的HTML页面的形式返回响应。
在浏览器的页面上,可能会运行一些客户端JavaScript来处理该网页中的处理。
用户点击导致客户端JavaScript调用在共享Web应用程序中运行的Web脚本的内容。这可能是异步发生的(不会导致整个页面刷新)。
该Web脚本可以使用服务器端JavaScript编写控制器。如果它需要来自Alfresco存储库的任何数据,它将调用在Alfresco Web应用程序中运行的Web脚本。
存储库中的Web脚本还可能包含处理请求的服务器端JavaScript,并返回对Alfresco Share中运行的服务器端JavaScript的响应。
Alfresco Share中运行的服务器端JavaScript处理从Alfresco存储库获取的响应,并向客户端返回响应。
服务器端JavaScript利用Alfresco JavaScript API。客户端JavaScript利用YUI和Dojo等客户端库以及一些特定于Alfresco的客户端库。所以你可能有一个web脚本生成一个包含客户端JavaScript的页面,或者你可能有一个调用服务器端JavaScript的客户端JavaScript,但是你在服务器端和服务器端都没有运行相同的东西。客户端。