Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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
Javascript 关于页面加载速度的专业建议_Javascript_Php_Jquery_Performance_Web - Fatal编程技术网

Javascript 关于页面加载速度的专业建议

Javascript 关于页面加载速度的专业建议,javascript,php,jquery,performance,web,Javascript,Php,Jquery,Performance,Web,好的,我将所有CSS和JS资源加载到一个基本文件中,其中包含我的 css和javascript文件。现在,这个单一的基本文件包含在所有网页中 该网站还包含许多其他使用这些资源的php页面。 这意味着每次我访问php页面时,都会一次又一次地加载所有资源 请看下面的图表: 让我们假设我访问Page1.php…然后为该页面加载所有四个文件…分别是file1.css、file2.css、file3.js、file4.js 现在让我们假设我访问了Page2.php…然后同样的事情再次发生…这四个文件都被

好的,我将所有CSS和JS资源加载到一个基本文件中,其中包含我的 css和javascript文件。现在,这个单一的基本文件包含在所有网页中

该网站还包含许多其他使用这些资源的php页面。 这意味着每次我访问php页面时,都会一次又一次地加载所有资源

请看下面的图表:

让我们假设我访问Page1.php…然后为该页面加载所有四个文件…分别是file1.css、file2.css、file3.js、file4.js

现在让我们假设我访问了Page2.php…然后同样的事情再次发生…这四个文件都被加载到该页面中…它们是file1.css、file2.css、file3.js、file4.js

现在,如果我们计算Page1.php的加载时间,它将等于以下所有内容的组合加载时间:

1) -加载在Page1.Php上编写的HTML和Php的时间
2) -文件1.css的加载时间
3) -文件2.css的加载时间
4) -文件3.js的加载时间
5) -文件4.js的加载时间

所以我的问题是:

1) -如何提高页面的加载时间

(我知道将所有样式和javascript包含在一个文件中是一个很好的做法,以使代码看起来干净……但是,如果基础文件中有一些javascript或css文件没有被其他页面使用,该怎么办……假设Page3.php不需要file2.css和file4.js……因此,我只是在浪费资源,增加页面负载加载Page3.php时尝试加载file2.css和file4.js的时间)

2) -现在让我们假设我们有另一个场景,一个奇怪的Javascript文件处理一百万条记录,然后在“Page1.php”上显示一些结果。现在,这个处理和加载显然需要一些时间……比如说5秒钟

(现在想象一下,每次访问页面都要等待5秒钟。。。 假设您访问Page2.php,并且必须等待5秒钟,但一切都是徒劳的。。。。 只是因为你犯了一个错误,在你的基本文件中包含了那个奇怪的javascript文件……而且由于基本文件链接到了所有其他页面,你每次访问一个页面都必须等待5秒钟。)


所以,只为Page1.php加载那个奇怪的javascript文件,而不为其他页面加载,因为它和其他页面无关,是不是更好?这里的最佳实践是什么…

有很多任务运行程序,比如or,可以在一个文件中缩小、丑化、压缩和压缩所有css或js

此外,您的服务器应该将缓存过期时间正确设置为您的客户端知道他已经拥有该文件,不需要再次下载该文件


很多web框架和库,比如jQuery、Bootstrap、Angular等等,都使用了。因此,如果您的客户端已经从另一个站点下载了jquery,那么它甚至不会尝试在您的站点上下载它。

有很多任务运行程序,比如or,可以在一个文件中缩小、丑化、压缩和压缩所有css或js

此外,您的服务器应该将缓存过期时间正确设置为您的客户端知道他已经拥有该文件,不需要再次下载该文件


很多web框架和库,比如jQuery、Bootstrap、Angular等等,都使用了。因此,如果您的客户端已经从另一个站点下载了jquery,它甚至不会尝试在您的站点上下载它。

1)您的服务器应该为静态文件设置一个适当的缓存时间,这样用户只会在第一个页面vist上加载它们,所有后续页面都会从浏览器缓存获得相同的资源(js、css、图像等)不应为每个页面请求多次重新加载;浏览器应该在第一个请求后缓存它们。。。。使用浏览器的开发工具进行检查非常容易。您还可以缩小文件并使用gzip进行压缩。2)这取决于您的js结构,但只需将慢速函数包装在if(document.getElementById(“some-id-found-only-on-page1”).length{slowasFunction();}应该这样做您还可以构建完整的客户端应用程序,并且只向api服务器请求数据。1)您的服务器应该为静态文件设置适当的缓存时间,以便用户只在第一页vist上加载静态文件,所有后续页面都可以从相同的浏览器缓存资源(js、css、图像等)获得服务不应为每个页面请求多次重新加载;浏览器应该在第一个请求后缓存它们。。。。使用浏览器的开发工具进行检查非常容易。您还可以缩小文件并使用gzip进行压缩。2)这取决于您的js结构,但只需将慢速函数包装在if(document.getElementById(“some-id-found-only-on-page1”).length{slowasFunction();}应该这样做。你也可以构建完整的客户端应用程序,只向api服务器请求数据。好的,谢谢……我的第一个问题就到此为止。但是我的问题2呢……有一个奇怪的javascript文件,加载时间很长,并且只对Page1.php是必需的。。。还要注意的是,它是一个自定义编写的javascript文件,用于处理数据,这就是为什么加载需要更多时间的原因。好的,谢谢……这就解决了我的第一个问题。但是我的问题2呢……有一个奇怪的javascript文件,加载时间很长,并且只对Page1.php是必需的。。。还要注意的是,它是一个自定义编写的javascript文件,用于处理数据,这就是它需要更多时间加载的原因。