我一直在玩Jaxer,虽然这个概念很酷,但我不知道如何定义在客户端和服务器上都可用的对象。我能找到的例子都没有定义对象。
我希望能够定义一个对象并指定哪些方法在服务器上可用,哪些在客户端可用,哪些在客户端可用但在服务器上执行(服务器代理)。 这可以在不使用具有不同属性的三个单独<script
的 > 标记的情况下完成吗?runat
如果可能的话,我希望能够在同一个 js 文件中定义我的所有方法,并且用三个单独的标签在 html 中内联定义我的对象是不切实际的......
基本上我希望能够在一个 js 文件中做到这一点:
function Person(name) {
this.name = name || 'default';
}
Person.runat = 'both';
Person.clientStaticMethod = function () {
log('client static method');
}
Person.clientStaticMethod.runat = 'client';
Person.serverStaticMethod = function() {
log('server static method');
}
Person.serverStaticMethod.runat = 'server';
Person.proxyStaticMethod = function() {
log('proxy static method');
}
Person.proxyStaticMethod.runat = 'server-proxy';
Person.prototype.clientMethod = function() {
log('client method');
};
Person.prototype.clientMethod.runat = 'client';
Person.prototype.serverMethod = function() {
log('server method');
};
Person.prototype.serverMethod.runat = 'server';
Person.prototype.proxyMethod = function() {
log('proxy method');
}
Person.prototype.proxyMethod.runat = 'server-proxy';
另外,假设我能够做到这一点,我将如何正确地将其包含到 html 页面中?