我一直在脑子里争论这个问题,现在我想听听你们在堆栈中的意见。那么什么更快呢?
我可以看到,从文件中获取图像可能是最快的,因为它是本地的,但通过文件夹找到文件并选择正确的文件的过程可能会消耗最大的处理能力。
从url获取图像可以简单地向url发送请求并下载该图像。在下载图像的同时,您的网站的其他部分也在加载。
加载页面时,服务器如何运行一个(或几个)处理线程来构建页面?页面是否以程序化的方式构建(一次构建一件事,相当于同时运行所有内容)?这可能是过程PHP(Wordpress)和面向对象PHP(Codeigner)的区别吗?
当您通过url获取文件时,您需要连接到服务器。现在有两种情况:
- 服务器是本地的
- 服务器是外部的
若服务器是本地的,那个么您可以使用本地IP,这不会导致DNS解析地址,而且速度很快,但服务器也参与其中。
如果服务器是extarnal,那么你需要使用域名或ip,如果你知道的话。你需要计算连接速度和服务器速度,但在我个人看来,这不是一个好的解决方案。
关于使用文件。你写道,你有一个URL,它准确地定义了文件的位置。你可以对文件做同样的事情,并给出路径,这样就不需要找到文件来下载它。我相信这是一个更快的解决方案。
关于Wordpress和Codeigniter,它仍然是PHP,所以这取决于代码的使用方式。很明显,您可以编写一个愚蠢的函数,在整个服务器中查找文件,也可以指定它应该在哪里,或者提供它的路径。所以它更快。PHP中也有很好的解决方案来搜索和处理文件。例如迭代器或简单的glob()
函数。
最后,我的观点是使用文件而不是url是更好的解决方案。
它的工作方式是,
a) HTML文档(静态/从PHP发出的文档)从服务器下载到浏览器。
b) 浏览器将开始解析它。
c) 它解析每个标签并相应地呈现/控制(即JavaScript)。
若有任何资源需要加载,浏览器会发出额外的下载请求。
任何通过网络发送的请求都会有延迟。
有很多方法可以优化它。下面很少给出这样的提示,包括减少DNS查找。http://developer.yahoo.com/performance/rules.html
如果文件不经常更改,那么最好使用CSS Image Sprites、HTML5本地存储。