如何为不同的用户组运行两个版本的 Backbone.js 应用程序
How to run two versions of Backbone.js app for different user groups?
>我有一个小型的骨干应用程序,它当前正在Drupal站点内的页面上运行。目前,Backbone 应用程序在没有身份验证的页面上提供 - 任何用户都可以看到它。
我想在另一个页面上使用几乎相同的 Backbone 应用程序,用户只有在经过身份验证时才会看到该应用程序。但是,我想为这些经过身份验证的用户添加一些高级功能。
困难在于我想为两种类型的用户使用相同的骨干代码,而不是拥有两个单独的骨干应用程序。你会建议我怎么做?
我天真地想到了这种事情:
SearchView = Backbone.View.extend({
render: function() {
if (isAdvanced) {
//render advanced search options in template
}
},
runSearch: function() {
if (isAdvanced) {
// handle advanced options for client-side search
}
});
问题是JavaScript代码显然对未经身份验证的用户可见,我猜他们可以在控制台中设置isAdvanced
,并以这种方式解锁高级功能?
(身份验证过程本身由Drupal处理。如果用户未通过身份验证以查看页面 B,则会自动将其转发到登录页面。这不是问题所在 - 如何组织JavaScript代码是问题所在。
我是否需要维护两个单独的主干应用版本?或者有没有办法在两者之间共享代码?
就上下文而言,这不是一个超级安全的应用程序,但高级功能是付费的,所以我宁愿它不是微不足道的黑客。
在这种情况下,我会做的最小化开发只是丑化/最小化你的应用程序JavaScript,这将是最便宜的解决方案,只有非常有动力的人才会花时间浏览混淆的代码。
我建议在 Backbone 应用程序中定义通用功能,对于高级功能,扩展通用应用程序并在其上添加更多功能。 根据身份验证级别呈现时,呈现通用/高级应用。有了这个,您添加到通用应用程序的任何内容都将可供两个用户使用,并且添加到高级应用程序的任何内容将仅适用于高级用户。
相关文章:
- 同一HTML页面中的两个不同版本的JQuery
- 在同一页面中使用两个版本的jquery将返回'未定义不是函数'
- 如何在不必维护每个文件的两个版本的情况下,将通用JavaScript和映像部署到两个不同的EAR
- 测试两个版本的 json 架构是否向后兼容
- 在同一页面中使用两个不同的jquery版本
- 在一个网站上使用两个不同版本的现代化
- 两个不同版本的 jQuery 导致事件侦听失败
- 如何提高javascript html5程序的整体性能:是否可以在两台计算机上同步两个版本
- 如何为不同的用户组运行两个版本的 Backbone.js 应用程序
- 当浏览器开始实现JavaScript时,如何在支持一两个版本较旧的浏览器的同时开始使用它们
- 如何在网页中添加两个CSS文件,一个用于Safari浏览器,一个用于iPad桌面版本
- Jquery在两个版本之间存在冲突
- 如何在同一页面中使用两个不同版本的猫头鹰旋转木马
- 如何有效地使用两个版本的JQuery
- Javascript函数来比较两个版本
- jquery引用错误,同时获得两个版本的jquery
- 这两个版本的函数有什么不同?
- 如何引导.js与两个版本的jquery冲突
- 是否可以在同一页面上运行两个不同版本的ReactJS
- 运行两个版本的jQuery,无法让“noConflict”工作