我正在开发一个使用大量ajax来显示数据的webapp,我想知道我是否可以就如何加快应用程序,减少带宽等方面提出任何建议。
我在我的环境中使用php,mysql,freeBSD,Apache,Tomcat。我拥有服务器,可以完全访问所有配置文件等。
我在apache http.conf文件中打开了gzip deflate压缩。我对所有.js和.css文件进行了混淆和缩小。
我的webapp以这种一般方式工作。登录后,用户登陆index.php页面。索引页面上的所有链接都是ajax调用,用于读取.php类函数,该函数将检索字符串中的html并将其显示在主index.php页面上的某个div中。
返回html的大多数函数都返回如下字符串:
<table>
<tr>
<td>Data here</td>
</tr>
</table>
我没有返回完整的“<html><head>
”内容,因为它已存在于index.php主页面中。
但是,返回的html字符串使用制表符,空格,注释等进行格式化,以便于阅读代码。我是否应该花时间缩小这些页面并删除标签,注释,空格?或者缩小.php页面是否可以忽略不计,因为它在服务器上?
我想我正在试图弄清楚我构建webapp的方式是否会导致带宽问题,如果我可以减少.php类文件大小,我可以通过减少它们来提高性能。大多数.php类是40-50KB,最大的是99KB。
为了速度,我考虑过使用memcache,但是不知道是否在事实之后添加它是值得的,我不知道如何实现它。我不知道服务器上是否有任何缓存...我想我已经把它留给了浏览器......我不太熟悉缓存领域。
现在网站看起来并不慢,但我是唯一的用户...我只是想知道它是否值得付出额外的努力。
任何建议或文章都将受到赞赏。
提前致谢。
答案 0 :(得分:0)
我的建议是不要通过AJAX调用发送HTML。相反,只通过JSON发送底层数据(“Data here”部分),然后通过客户端函数处理该数据,该函数将使用正确的HTML装饰它,然后将其注入DOM。这将大大加快Ajax调用。
答案 1 :(得分:0)
Memcache提供了一个允许您缓存数据的API。您还需要(并且在我看来更重要的是)是关于缓存什么以及何时使缓存无效的策略。这不能通过查看源代码来确定,它来自您的网站的使用方式。
但是,可以立即使用操作码缓存(例如APC)。
答案 2 :(得分:0)
代码美化是为人而不是机器。
作为优化的一部分,您应该起飞。
或者只是在应用程序中添加一个标志检查,某些条件匹配(如调试模式),它返回格式良好的javascript。否则,空格并不意味着要加工。
<强> APC 强>
你应该使用APC来编译&amp;将php脚本缓存到操作码。
<强>为什么吗
有什么好处?
Memcache - 不是吗?
取决于,如果您处于单一主机环境中,可能无法获得更好的效果。 memcache的最大优点是信息共享和信息共享。分发(这意味着多个服务器环境,缓存一次并使用很多)。
<强>等吗