我只是推测,但有几点值得一提。
根据消息来源,prettify.js 的默认模式是使用延续运行,并避免一次占用 CPU 超过 250 毫秒(我在http://code.google.com/p引用源/google-code-prettify/source/browse/trunk/src/prettify.js):
/**
* Split {@code prettyPrint} into multiple timeouts so as not to interfere with
* UI events.
* If set to {@code false}, {@code prettyPrint()} is synchronous.
*/
window['PR_SHOULD_USE_CONTINUATION'] = true;
您在上面编写代码的方式表明它可能被配置为以同步模式运行,这就是它速度慢并且占用您的页面的原因。您应该确保此标志未设置为 false,并将您的 fadeIn 调用添加到您传递给 prettyPrint 调用的回调函数中。
假设我理解正确,如果你设法在异步模式下运行 prettyPrint,它最多应该占用 250 毫秒,并且通过将你对 fadeIn 的调用放在传递给 prettyPrint 调用的回调函数中,它不会褪色直到所有语法突出显示完成。如果当时对 prettyPrint(250 毫秒)的一系列调用仍然感觉很慢,其他建议可能是将最大时间值减少到小于 250 的值,或者找出如何确保 prettyPrint 仅从 prettyPrints 更新的元素你的ajax调用。