Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 快速加载网页_Php_Javascript_Mysql_Ajax - Fatal编程技术网

Php 快速加载网页

Php 快速加载网页,php,javascript,mysql,ajax,Php,Javascript,Mysql,Ajax,我们计划开发一个新网站。我们的目标是加载网页 迅速地。我们需要遵循的所有技术是什么 谁能给我好的建议,论坛链接或文章 我们的平台是PHP、MySQL、Javascript和AJAX。加速网站加载时间的最佳指南之一: 更新:谷歌现在也有一个很好的指南 还有一个更好的。到目前为止,在我的测试中,谷歌的页面速度插件远远高于YSlow。它提供了更详细的分析和更明智的建议(而不是为像YSlow这样的小型网站推荐CDN) 使用CSS精灵使您的HTTP请求保持倒计时 确保你所有的图片大小都合适 确保你有

我们计划开发一个新网站。我们的目标是加载网页 迅速地。我们需要遵循的所有技术是什么

谁能给我好的建议,论坛链接或文章


我们的平台是PHP、MySQL、Javascript和AJAX。

加速网站加载时间的最佳指南之一:


更新:谷歌现在也有一个很好的指南

还有一个更好的。到目前为止,在我的测试中,谷歌的页面速度插件远远高于YSlow。它提供了更详细的分析和更明智的建议(而不是为像YSlow这样的小型网站推荐CDN)

  • 使用CSS精灵使您的HTTP请求保持倒计时
  • 确保你所有的图片大小都合适
  • 确保你有一个真正好的主机和良好的上游和下游
  • 确保您的服务器能够及时执行脚本,您可以使用microtime函数进行检查
  • 确保您的代码已正确优化

缓存

选一个,用它。不必从数据库中获取所有信息,大大加快了速度。

一个有用的工具是Yahoo的工具,它可以帮助识别网页性能问题。此外,雅虎的是一个很好的名单


不过,请参阅Jeff的博客文章,了解关于这个问题的一些观点。

尽可能少地编写代码,但不能太少


更少的代码、更少的编译、更少的发送、更少的接收、更少的处理、更少的显示。

使用PHP探查器确保代码以合适的速度执行。如果性能可以提高,重构(如果可能)。

一些随机点

渐进式渲染,而不是在内存中构建它,并在最后发送,给人一种明显的速度印象

您可以使用一些高级缓存技巧,如前向缓存(Akamai在大规模上就是这么做的)和分离静态和动态内容


特别是对于PHP,在复制大量数据时要小心。PHP4因其“默认复制”而臭名昭著,但在PHP5中仍有大量数据要交,这有点太容易了。换句话说:不要不必要地复制(或创建!)字符串、数组和对象;将它们放在适当的位置,并传递参考信息。

除了已经说过的内容之外:

  • 模糊和压缩你的css
  • 混淆并压缩javascript
  • 更少的文件==更少的http请求==更快的站点==将所有css放在一个文件中,将所有javascript放在一个文件中

压缩所有文件,包括css和js文件也压缩php文件。尽可能少地进行数据库调用,并如前面所述缓存所有返回的数据。

1)mod_gzip/mod_deflate!这是一个如此简单的修复,我很惊讶它在默认情况下没有打开

2) 用你的URL玩把戏,这样你就可以告诉浏览器永远缓存你的JS和CSS文件。换句话说,将URL的

http://www.yourdomain.com/js/mad_scriptz-v123.js
然后使用mod_rewrite并去掉“-v123”:


# http://www.thinkvitamin.com/features/webapps/serving-javascript-fast
重新启动发动机
重写规则^/(.*)\-v[0-9.]+\(css | js | gif | png | jpg | xap)$/$1.$2[L]
现在apache将寻找“/js/mad_scriptz.js”。。。每次更改静态内容时,只需增加版本号即可强制浏览器重新加载内容。我通常有一个模板变量,其中包含一个全局版本号,所有内容都与此相关。不是最有效率的,但对我来说很有用。如果您可以将版本号绑定到构建系统或文件的散列,那就太好了

让mod_过期,使您的所有静态内容在几年后过期:

<IfModule mod_expires.c>
    ExpiresActive On
    # all in seconds...  
    ExpiresByType image/x-icon A2592000
    ExpiresByType image/gif A2592000
    ExpiresByType image/jpeg A2592000
    ExpiresByType image/png A2592000
    ExpiresByType application/javascript A2592000
    ExpiresByType application/x-javascript A2592000
    ExpiresByType application/x-shockwave-flash A2592000
    ExpiresByType application/pdf A2592000
    ExpiresByType text/css A2592000
    ExpiresByType application/rdf+xml A1800
</IfModule>

过期于
#都在几秒钟内。。。
ExpiresByType图像/x图标A2592000
ExpiresByType图像/gif A2592000
过期按类型图像/jpeg A2592000
ExpiresByType图像/png A2592000
ExpiresByType应用程序/javascript A2592000
ExpiresByType应用程序/x-javascript A2592000
过期按类型应用/x-shockwave-flash A2592000
按类型申请过期/pdf A2592000
ExpiresByType文本/css A2592000
ExpiresByType应用程序/rdf+XMLA1800
更新:注意到并非所有浏览器或搜索引擎都喜欢gzip的内容。不要像我上面建议的那样盲目地打开它。确保即使他们接受gzip,你也不会给他们提供信息(他们中的一些人会对压缩的javascript感到恼火)。和的文档都有一些示例,它们应该可以很好地工作(我假设它们可以,或者人们会通过电子邮件向它们发送更改:-)

我还应该提到,根据我的经验,如果你在你的mod_gzip的Apache服务器和世界之间有一个反向代理,你需要小心。Squid 2.6通常会欺骗Apache,使其在应该的时候不使用gzip,更糟糕的是,它会缓存未压缩的版本,并将其提供给能够处理gzip内容的浏览器。不知道3.0是否解决了这个问题,我也不知道我的配置中是否有问题(对此表示怀疑)。请注意:-)

也就是说。打开它。严肃地说:-)

Yahoo:“将样式表放在顶部”,“将脚本放在底部”


这使我最近的网站比任何其他优化都快。

这里有一个我总是觉得有用的提示: 如果你有很多小图像,把它们都放在一个平铺的图像中。在CSS声明中,通过操纵背景的x和y坐标来控制html元素的视口:

.icon {
    background-image:url(static/images/icons.png);
    height:36px;
    width:36px;
}
.food {
    background-position:-52px -8px;
}
.icon_default {
    background-position:-184px -96px;
}
平铺可以在Python脚本中完成,如果您有一个可管理的集合,也可以手动完成


Gmail也能做到这一点。请参阅:

这是一个项目,有助于解决雅虎的一些问题s guidelines()是一种在同一空间中使用小型化、包绑定和有条件HTTP服务,与良好的设计实践结合使用,可以显著减少
.icon {
    background-image:url(static/images/icons.png);
    height:36px;
    width:36px;
}
.food {
    background-position:-52px -8px;
}
.icon_default {
    background-position:-184px -96px;
}
<ifModule mod_headers.c>
    Header set Connection keep-alive
</ifModule>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?your_Domain_name.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]
# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# Or, compress certain file types by extension:

SetOutputFilter DEFLATE
<IfModule mod_expires.c>
    # Enable expirations
    ExpiresActive On 
    # Default directive
    ExpiresDefault "access plus 1 month"
    # My favicon
    ExpiresByType image/x-icon "access plus 1 year"
    # Images
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType image/jpg "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    # CSS
    ExpiresByType text/css "access plus 1 month"
    # Javascript
    ExpiresByType application/javascript "access plus 1 year"
</IfModule>
zlib.output_compression = On
<?php 
    if (substr_count($_SERVER[‘HTTP_ACCEPT_ENCODING’], ‘gzip’))
    ob_start(“ob_gzhandler”); else ob_start(); 
?>
<IfModule mod_deflate.c>

############################################
## enable apache served files compression
## http://developer.yahoo.com/performance/rules.html#gzip

    # Insert filter on all content
    SetOutputFilter DEFLATE
    # Insert filter on selected content types only
    AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript application/javascript application/x-javascript text/xml application/xml application/xhtml+xml image/x-icon image/svg+xml application/rss+xml application/x-font application/x-font-truetype application/x-font-ttf application/x-font-otf application/x-font-opentype application/vnd.ms-fontobject font/ttf font/otf font/opentype 

    # Netscape 4.x has some problems...
    BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    # Don't compress images
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

    # Make sure proxies don't deliver the wrong content
    Header append Vary User-Agent env=!dont-vary

</IfModule>