为什么多个“includes()”文件导致浏览器在基于移动JQM的网站上加载速度慢

I know this question have been asked many times on stack one of them is probably this Link but I could not get my answers from these links .

So my question is I am loading multiple files in a form using php includes() which is causing the page load time almost 30 seconds that is too much than the normal execution time .

Although the same method works fine in my desktop version check the link Link here the page is loading fine .

My code looks something like this

HTML

<div id="DIVC3" class="divs_details">
    <?php include(dirname(__FILE__)."/cat3.tpl.php")?>
</div>
<div id="DIVC4" class="divs_details">
    <?php include(dirname(__FILE__)."/cat4.tpl.php")?>
</div>
<div id="DIVC5" class="divs_details">
    <?php include(dirname(__FILE__)."/cat5.tpl.php")?>
</div>
<div id="DIVC6" class="divs_details">
    <?php include(dirname(__FILE__)."/cat6.tpl.php")?>
</div>
<div id="DIVC8" class="divs_details">
    <?php include(dirname(__FILE__)."/cat8.tpl.php")?>
</div>
<div id="DIVC9" class="divs_details">
    <?php include(dirname(__FILE__)."/cat9.tpl.php")?>
</div>
<div id="DIVC10" class="divs_details">
    <?php include(dirname(__FILE__)."/cat10.tpl.php")?>
</div>
<div id="DIVC11" class="divs_details">
    <?php include(dirname(__FILE__)."/cat11.tpl.php")?>
</div>
<div id="DIVC12" class="divs_details">
    <?php include(dirname(__FILE__)."/cat12.tpl.php")?>
</div>
<div id="DIVC13" class="divs_details">
    <?php include(dirname(__FILE__)."/cat13.tpl.php")?>
</div>
<div id="DIVC15" class="divs_details">
    <?php include_once(dirname(__FILE__)."/cat15.tpl.php")?>
</div>
<div id="DIVC16" class="divs_details">
    <?php include(dirname(__FILE__)."/cat16.tpl.php")?>
</div>
<div id="DIVC17" class="divs_details">
    <?php include(dirname(__FILE__)."/cat17.tpl.php")?>
</div>
<div id="err_desc" style="visibility:hidden; display:none;">
    <?php
    $long_desc=strlen($t_POST['im_desc']);
    if ($long_desc>0 && $long_desc<15) {
        ?>
        <span style="color:#FF0000;font-weight:bold; font-size:12px"> <?=$this->translate->translate('ERR_DESC','nucleo','Descripción deficiente');?></span>
        <?php 
    }
</div>

Please let me know if you have similar problem before

Thanks & Regards

dongqiu9018
dongqiu9018 您能否确保在apache端没有任何浏览器缓存或出现问题?
6 年多之前 回复
dongshenghe1833
dongshenghe1833 但我的目录不包含超过1k的文件,我猜兄弟。是否可以在使用JQuery需要其中一个文件时加载这些文件?
6 年多之前 回复
dongshuo8756
dongshuo8756 当目录包含一个目录中超过1000个文件时,某些文件系统可能会变慢。但这似乎不是你的问题。
6 年多之前 回复
duanfeigui6655
duanfeigui6655 我想17个catego
6 年多之前 回复
dozpox8752
dozpox8752 嗯,不,它只包含表单输入类型。喜欢不同类别的内容。它太大了,这就是我们将它分类到不同文件中的原因
6 年多之前 回复
dsv768456
dsv768456 你的目录中有几个categories.tpl.php?
6 年多之前 回复

1个回答



有几件事情导致了这个问题,但是从一开始就放手。 </ p>

在Web服务器处理所有响应回浏览器客户端之前,jQuery Mobile无法设置样式并增强页面内容。 所以我们说你的页面有额外的cca。 50个文件(不同的图像,js和css文件等)加上你的服务器端有一堆PHP包含。</ p>

在这种情况下服务器端PHP将首先尝试处理所有文件包括 。 但这个过程并不平行,不会一下子发生。 这是第一个性能块,看它是你的PHP代码,它可能是头号罪魁祸首。</ p>

第二步也有问题,让我们说PHP已完成内容生成并将响应发送给客户端 浏览器。 同样,响应不会同时处理,每个Web服务器都限制每个会话可以处理多少响应。 因此,如果您有50个文件(不同的图像,js和css文件等),则加载所有内容的平均时间将增加10倍,然后只需加载5个文件(当然这取决于文件大小)。 </ p>
</ div>

展开原文

原文

Several things are causing this problem but let go from the beginning.

jQuery Mobile can't style and enhance page content before web server handles all responses back to your browser client. So lets say your page has additional cca. 50 files (different images, js and css files etc.) plus there's a loot of PHP includes on your server side.

In this case server side PHP will first try to handle all file includes. But this process is not parallel, it will not happen all at once. This is the first performance block, and looking it your PHP code it is probably number one culprit.

Second step is also problematic, lets say PHP has finished content generation and response is sent to client browser. Again responses will not be handled all at the same time, each web server has a limit of how much responses can be handled per single session. So if you have for example 50 files (different images, js and css files etc.) it will take at average 10x more time to load everything then it will take to load only 5 files (of course this differs depending on file sizes).

dongqingchan2385
dongqingchan2385 最常用的方法是使用AJAX加载它们。 这样你就可以得到你想要的东西。 此外,您的应用程序将加载更快。
6 年多之前 回复
dongqin6926
dongqin6926 是的,但我怎么能解决这个问题是否有一种方法可以使用Jquery onchange函数验证它。 就像我需要这些类别文件时才选择该类别。
6 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问