我即将发布一个单页应用程序(html + css + js)。
应用程序没有外部依赖关系,这意味着用户可以下载所有文件并将它们安装在单独的位置。根据过去的经验,这是一个糟糕的情况,至少有两个原因:
有没有一种优雅的方法可以防止这种情况发生?我正在考虑一些有力的方法,比如在代码中隐藏日期检查,但我不想走太远而影响业务......
答案 0 :(得分:2)
首先,您应该拒绝支持最终用户调整过的代码。真。
其次,如果人们下载您的应用程序以便离线使用,那么您可以通过向您的应用添加离线模式来接受这一点。这会阻止人们手动下载文件(因为它在未连接时仍可正常工作),并且在可用时仍会获得更新。查看the various offline abilities of HTML5, including the cache manifest。
答案 1 :(得分:1)
不。你只需要说服人们这是一件坏事。 不要为外部托管的应用程序提供支持,但除此之外,您无法做到这一点。
答案 2 :(得分:1)
两个选项:
将页面放在服务器下一些模糊的文件夹路径下。然后添加一项检查以查看location.href
中是否存在文件夹路径。如果用户在本地保存您的文件,他们将无法复制所有文件夹,只会保持文件名不变。
例如,http://www.pathtosharepoint.com/stackoverflow/index.htm
<script>
if(!/stackoverflow/.test(location.href))location="about:blank";
</script>
设置Cookie。如果页面是在本地保存的,则cookie将无法读取。
if(!/stackoverflow/.test(document.cookie))location="about:blank";
答案 3 :(得分:0)
简而言之:不,你不能
但是如果你混淆和缩小你的代码,并在你的应用程序中进行一些反复制检查,这可能会使非法复制器的工作变得更难,因为他们必须知道一些JS来解锁你的应用程序。但我必须重申:基于客户端的防复制应用程序(并且可能永远都是)只是一个梦想。
答案 4 :(得分:0)