Alw*_*ast 12 javascript jquery function
问题:我有一个jQuery繁重的页面,有一个内置的管理界面.admin函数仅在设置admin变量时触发.这些功能需要第二个库才能正常工作,如果用户在首次创建页面时是管理员,则仅包含第二个文件.这些功能永远不会触发普通用户,而普通用户也不会获得第二个库的包含.
引用当前包含的文件中不存在的函数是不是很糟糕,即使该函数永远不能被调用?(那有意义吗 :)
伪代码:
标题:(注意不包括admin.js)
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="user.js"></script>
Run Code Online (Sandbox Code Playgroud)
script.js :(引用的管理函数但无法执行)
admin = false; // Assume this
$(".something").dblclick(function(){
if(admin)
adminstuff(); // Implemented in admin.js (not included)
else
userstuff();
});
Run Code Online (Sandbox Code Playgroud)
想法: 我想可以使用两个单独的用户和管理员文件,但我觉得这将是一个过于复杂的解决方案(不想维护两个只有几行差异的大文件).我在此文件中包含对admin函数的引用的唯一原因是我需要将它附加到作为脚本一部分刷新的页面元素.当jQuery刷新页面时,我需要将功能重新附加到交互元素.
问题: 我希望保持简单,如果用户不使用,则不必包含我不需要的文件.这是一个很好的方法,或者我应该走另一条路?
代码应该无错误地运行,因为不会调用没有实现的管理功能.唯一真正被浪费的是传输未使用的管理代码的带宽.
但是,让我通过默默无闻来警告安全.如果用户要查看此代码并看到他们无法访问的管理员功能,他们可能会感到好奇并尝试下载"admin.js"文件并查看这些功能的作用.如果您阻止执行管理功能的唯一阻止是停止包含该文件,那么一些狡猾的用户可能会很快找到一种方法来调用管理功能,而这些功能应该无法执行.
如果您已经对admin函数调用进行服务器端身份验证/权限检查,请忽略我之前的段落:-)