关于如何在 blogspot 上显示代码时美化代码,已经有几个主题:How to use prettify with blogger/blogspot?和 What are the steps I need to take to add nice java code formatting to my blogger/blogspot blog? .
我试过谷歌的美化http://code.google.com/p/google-code-prettify/和语法高亮器 http://alexgorbatchev.com/SyntaxHighlighter/ .两者都很好。但是,我感兴趣的是两者中哪一个具有更好的性能 - 这就是该线程的不同之处。
压缩
YSlow 告诉我两者都没有压缩发送到我的浏览器。但是,我并没有自己托管该网站,而是使用 google 的 blogspot 进行托管。所以,我不认为我能在这里做很多事情。正确吗?
缓存 Google 的 prettify 和 syntaxhighlighter 都使用 javascript 文件和样式表。他们分别将它们托管在谷歌服务器和亚马逊服务器上。如果我自己托管文件,我可以使用 Apache Http 服务器并在 HTTP 响应上设置缓存 header ,这样返回的用户就不会继续下载它们。如果我不托管自己并使用 blogspot 的免费托管,我无能为力,对吗?
服务器 ping 时间 这是一个有点点头的测试。当我 ping google 的 prettify 时,我得到:
Pinging googlecode.l.google.com [209.85.143.82] with 32 bytes of data:
Reply from 209.85.143.82: bytes=32 time=5ms TTL=53
Reply from 209.85.143.82: bytes=32 time=4ms TTL=53
Reply from 209.85.143.82: bytes=32 time=4ms TTL=53
Reply from 209.85.143.82: bytes=32 time=5ms TTL=53
当我 ping syntaxhighlighter 时:
Pinging www.alexgorbatchev.com [69.163.149.228] with 32 bytes of data:
Reply from 69.163.149.228: bytes=32 time=148ms TTL=47
Reply from 69.163.149.228: bytes=32 time=146ms TTL=47
Reply from 69.163.149.228: bytes=32 time=146ms TTL=47
Reply from 69.163.149.228: bytes=32 time=146ms TTL=47
看起来谷歌赢得了这场比赛。可能使用了 CDN,但我认为没有使用 syntaxhighlighter。
更少的 Http 请求
这里有不同的方法。 Syntaxhighlighter 是非常模块化的,具有针对不同语言的不同 javascript 文件。谷歌使用一个更大的 javascript 文件进行美化。 因此,如果您包含来自各种语言的代码片段,那么可以使用语法高亮显示更小的文件大小,您当然会有更多的 http 请求。
这就是背景。问题是关于使用 syntaxhiglighter 或 google 的 prettify 的性能提示是什么?您如何才能使速度更快或确定一个比另一个更快?
谢谢。
最佳答案
出于以下几个原因,我认为您应该选择谷歌(由他们托管):
如果代码由 google url 托管,如果他们之前访问过的网站(不是您的网站)使用了相同的 url,浏览器就有机会从缓存中读取。这意味着他们甚至可以在访问您的网站之前从缓存中读取数据。
Google 有一个 CDN,这意味着他们可以从离请求者最近的服务器提供文件。例如。您的服务器可能托管在美国,但如果澳大利亚人访问您的网站,他仍然必须去美国获取您的文件,...谷歌不是这种情况。
它对您来说更便宜、更少麻烦。
更少的 HTTP 请求是浏览器性能提升的无名英雄
就谷歌而言,不压缩文件。在编码或做任何与谷歌相关的事情时,我有一个一般规则:
“谷歌比你聪明”
如果我认为 google 没有发送压缩文件,则可能是:
我错了,谷歌正在向我发送压缩文件
最好不要发送压缩文件
一些我无法理解的未知原因
兄弟,保持简单,相信谷歌
关于javascript - 需要 Syntaxhighlighter V Google 的美化性能建议吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9349396/