我创建了一个模块化的AJAX/PHP框架的PHP端,现在我想实现客户端。唯一实例
我以前用模块化的Web应用程序的经验,我知道需要一个特定模块的有时多个实例。例如,一个基于Web的双人游戏,每个用户都有页面部分。
在PHP方面我已经指定unque ID到模块的每个构建的实例,我可以通过这个UID的浏览器,但我不知道如何实现这个模块实例的JavaScript端。
模块可以加载的所有一气呵成或通过AJAX分别装载(我使用jQuery)。
现在我使用的是模块化的方法,我在一些文章中发现,但是我可以重新设计一些其他的方式,如果这将有助于解决这一问题,而sacrifising模块化和私有/公共代码分离。现在让我们说我有一个js文件,内容如下:
//Self-Executing Anonymous Func
(function(MyModule, $, undefined) {
// My Uid
MyModule.UID = "";
//Public Method
MyModule.onLoad = function() {
alert("Hey, you loaded an instance of MyModule with UID " + MyModule.UID);
};
//Private Methods follow
function somethingPrivate() {
}
}(window.MyModule = window.MyModule|| {}, jQuery));
我正在使用Smarty模板。比方说,我有一个简单的模块模板是这样的:
<div id="{$contents.moduleuid}">
here goes the contents of the module which can be accessed from MyModule Javascript code by using this unique moduleuid
</div>
我已经建立了服务器端,从而每个模块自动添加额外的模板用javascript:
<script type="text/javascript">
/*
TODO: here I have access to the {$contents.moduleuid}
But I have no idea what to put here to create a unique instance of MyModule
(also it might need loading js file if it was not loaded yet) and I should also set for
this instance MyModule.UID to {$contents.moduleuid}
and also call MyModule.onLoad for this instance after it has loaded its Javascript.
*/
</script>
我不与Javascript高级经验主题,所以我不清楚如何为每个模块创建一个单独的MyModule实例,从而构建服务器端?是否有可能创建自动执行匿名函数的实例?如果不是,那么我怎样才能实现和克隆分离私人/公共代码的JavaScript对象?