2013-04-25 69 views
0

我正在构建一个从SQL数据库动态加载的网站。为此,我创建了一个处理所有AJAX和Post和Get请求的PHP文件(每个页面都有几个php include)。使用AJAX请求长PHP脚本

PHP还不是很长(250行),但最终可能会变得更长。 所有内容都包含在<?php **** ?>标签中,并且清晰且有条不紊地由switchcase组成。所以我只需要每行几行。

我的问题是:是否include请求负载/下载所有文件,或者只是相应的部分?改写时,会假设10,000行长脚本减速浏览器,或者只是从服务器的响应时间?

我对这一切都有担忧。

在此先感谢。

PS:这种统一sql请求的想法来自计算机工程师朋友,他始终坚持要求Multititer Architecture

+1

如果您关心的是性能,那么请查看可用的免费缓存机制。我使用Wincache进行OPCache,文件缓存,会话缓存和用户缓存。用户缓存允许您使用'key => value'对缓存自定义输出。因此,如果你有一些需要花费大量时间/ CPU的进程,那么就考虑在任何时间范围内缓存它的输出,这样你的服务器就不必在每次页面加载时都做所有的计算。即使只使用Wincache/APC/Memcached进行OPCache也会加快应用程序的速度,因为PHP文件不需要在每次加载时转换为位代码。 – Jasper 2013-04-25 15:36:22

回答

2

当你include一个文件,整个文件的内容被插入/执行到该脚本的那一点。根据包含的内容,如果包含响应不必要的文件,则可能会减慢响应速度。

http://us3.php.net/manual/en/function.include.php

+0

是的,但它只包含在一系列开关情况下,所以只有一小部分代码实际执行。 正如Jasper所说,在每次请求时避免将PHP转换为位是非常好的... 但是由于所有的php本身都是脚本'',而且它是服务器端,它是否真的'插入'浏览器?所以我只需要检查很长一段时间的服务器响应,而不是浏览器的效率。是对的吗? 非常感谢您的回答 – Nico 2013-04-25 17:07:15

+1

php没有插入浏览器,浏览器只能看到php生成的html。 对于你的第二个问题,是的。你会想要观察长时间的服务器响应。 – Schleis 2013-04-25 17:31:54

0

我有一个很好的解决方案! (这是我自己的问题)

而不是o解析变量$option输入switch case case case .... case case endswitch我想我可以将PHP分成许多不同的PHP,并将它们的名称与其相应的大小写分开。

因此,我将使用<?php include('some_folder/'.$option.'.php');?>而不是使用case('sports'),这样可以避免每次调用时都将整个文件转换为二进制文件。

由于PHP在服务器上处理,所包含的文件将一直出现,它只需要处理20行代码而不是400(最终还有更多)。

明确地说,谢谢