Javascript SpineJS是否不适合多页网站?
我是使用SpineJS的新手,玩得很开心 当我完成接触示例并看到SpineJS中的其他组件时 我意识到没有关于Web站点的例子(它有许多html页面) SpineJS似乎不是适合网站设计的框架 (我认为这种框架适合单页应用) 我这样想是因为我应该在我的网站的第一个视图中创建“websocket”对象 当我离开第一个视图(html页面已更改)时,我无法保留“websocket”对象 我应该一直保留这个“websocket”,直到用户注销 是这样吗?或者有没有办法创建多视图网站 (AngularJS框架支持$route服务。Javascript SpineJS是否不适合多页网站?,javascript,angularjs,javascript-framework,spine.js,Javascript,Angularjs,Javascript Framework,Spine.js,我是使用SpineJS的新手,玩得很开心 当我完成接触示例并看到SpineJS中的其他组件时 我意识到没有关于Web站点的例子(它有许多html页面) SpineJS似乎不是适合网站设计的框架 (我认为这种框架适合单页应用) 我这样想是因为我应该在我的网站的第一个视图中创建“websocket”对象 当我离开第一个视图(html页面已更改)时,我无法保留“websocket”对象 我应该一直保留这个“websocket”,直到用户注销 是这样吗?或者有没有办法创建多视图网站 (AngularJS
-它可以在不重新加载整个框架的情况下加载html页面。)您当然可以在单个页面中实现多页面网站。好吧,听起来很矛盾。从服务器端,它呈现一个页面,提供源代码。但是在客户端代码中,路由器对象可能会根据路由完全不同地呈现页面 编辑/添加: 不确定这是否是最好的,但下面是我的应用程序如何加载存储在应用程序源代码中的单独html文件中的模板,例如
myview.template=app.TemplateManager.fetch('grids/item')代码>
spinjs拥有与所有moderns客户端框架一样的路由。我阅读了有关路由的文档。但它似乎只是在操纵url哈希。没有提到加载外部模板文件(html).Um。。SpineJS中的路由捕获URL散列更改(它可以更改散列),然后,它将通过回调通知此更改。在这个回调中,我可以呈现我想要的模板。但是,我想知道的是如何加载外部html页面(不在index.html中的模板代码中)。如果我的web应用程序中有很多页面,那么index.html将有上千行和许多模板。啊,问题不在于Spine.js,而在于管理大量模板吗?我的应用程序有几十个“页面”,每个页面都使用Spine.js和不同的模板在浏览器中呈现。最初,我使用将模板保存在index.html
中,因此,这项工作取决于使用SpineJS的用户。但是,谢谢你善意的回答。我可能需要大量练习才能在SpineJS上添加所需的新功能。再次感谢。
templateManager: {
JST : {}, // hash table so not to load same template twice
fetch: function(path) {
url = "/app/templates" + path + ".html";
if (!this.JST[path]) {
$.ajax({ url: url, async: false }).then(function(contents) {
this.JST[path] = _.template(contents);
});
}
return this.JST[path];
}
});