我正在努力提高我对源代码的读写能力,但是当我查看某个网站的网页来源时,我会发现一个看似javascript代码的巨大墙。
这个网站就是一个很好的例子: http://www.torontossc.com/
当我查看页面源时,我不知道如何处理那个巨大的墙,所以我有一些问题/逻辑推论。
代码墙位于<script>
标签中,所以我假设它必须是javascript。但我很困惑为什么它以如此难以理解/混乱的格式出现。当然必须有这样的理由。
我下载了源代码并查看了html页面,并注意到当我在运行时没有查看源代码时,该块不存在 - 只有一个外部引用的脚本代替它。我正在看到实际脚本本身的代码墙,它是否在页面加载时运行?
我进一步挖掘并发现脚本是facebook sdk的一部分。这是否意味着每当我看到这样的代码墙时,它通常是导入的脚本,用作API的一部分/与其他网站集成?如果是这种情况,那么我应该假设它的杂乱性和密度仅仅是为了紧凑性
如果我的上述假设是正确的,那么学习javascript会让我完全理解代码墙吗?
我希望通过演绎来回答我自己的问题,但希望有人能证实。
谢谢!
答案 0 :(得分:4)
代码墙在标签中,所以我假设它必须是javascript。
是的,它在那里清楚地打印出来:<script type="text/javascript">
。
但我很困惑为什么它会以如此难以理解/混乱的格式出现。当然必须有这样的理由。
它是minified,这是一种混淆形式,它使JavaScript下载更小,更难以进行逆向工程。
我下载了源代码并查看了html页面......
这可能打破了很多东西。您无法下载页面而无需下载所有相对引用的路径。
这是否意味着每当我看到这样的代码墙时,......
不,除了它以外,你没有什么可以说的代码
如果我的上述假设是正确的,那么学习javascript会让我完全理解代码墙吗?
不,没有人以这种方式编写代码,没有人(很容易)理解以这种方式编写的代码。计算机压缩/缩小代码,并理解它你需要学习JavaScript,然后无法解释代码,这是一个远非完美的过程。许多形式的缩小是“破坏性的”#34;因为它不可能回到原始源代码。人类可读的令牌通常会变成单个字符,并且无法撤消此过程,原始的人类可读名称会丢失。