2

我有 3 页,main_page.phpajx_page1.phpajx_page2.php

我正在使用$.post请求main_page.php并发送到ajx_page1.php. 在此ajx_page1.php发送$.post请求之后ajx_page2.php。我在下面添加了一张图片以便更好地理解......

问题

该请求在我的本地主机上运行良好且快速,当我在实时服务器上运行它时,它需要将近 4-6 秒的时间。这是最可怕的时间流逝。

是否有任何其他方法可以将页面内的 ajax 请求发布到子页面,如下图所示。

并且还ajx_page2.php从数据库中检索数据.. 并且其他页面正在从他们的 ajx-child 页面中提取数据

甚至 CSS 和 jQuery 都不起作用..

代码

Main_page.php

$.post("ajx_page1.php", {parameters}, function(return_data){
    $("#container").html(return_data);
});

ajx_page1.php

$.post("ajx_page1.php", {parameters}, function(return_data){
    $("body").html(return_data);

});

ajx_page2.php

    `some condition and logical data from database`

在此处输入图像描述


更新文件详细信息

Main_page.php

<div id="content_region" class="center">

    <div class="a_job_pre_action clear">
    <ul class="a_jj_ul">
        <li class="j_act_1 j_act" ><a href="" >JOB DETAIL</a> </li>
        <li class="j_act_2 j_act" ><a href="" >STAFF SHORTLISTED</a> </li>
        <li class="j_act_3 j_act" ><a href=""  >CLIENT SHORTLISTED</a> </li>
        <li class="j_act_4 j_act" ><a href="">CONFIRM FOR INTERVIEW</a> </li>

        <?php if ($_SESSION['user_type'] == "admin" or $_SESSION['user_type'] == "manager"): ?>
            <li class="j_act_5 j_act" ><a href="" >INVOICES</a> </li>
        <?php endif; ?>

        <li class="j_act_6 j_act" ><a href="" >CONTACT CLIENT</a> </li>
    </ul> <!-- a_jj_ul -->
    </div> <!-- a_job_pre_action -->

    <div class="clear a_job_action_result">



    </div>


<script>

    $(document).ready(function(){

    $(".j_act_1 a").click(function(){


        $.post("ajx_page1.php", {job_id : j_job_id}, function(return_data32){
            $(".a_job_action_result").html(return_data32);
        });
    });




    });

</script>

ajx_page1.php

<select class="a_sel" name="sel_staff">
    <?php get_all_staff_options(); ?>
</select>

// and some other data too.


<script>

    $(document).ready(function(){

    $(".ajx_select_status").change(function(){
       var j_job_status = $(this).val();
        var j_job_code = "<?php echo $curr_job_data['job_code']; ?>";


        $.post("ajx_page.php", {job_status : j_job_status, job_code : j_job_code}, function(return_data32){
            alert(return_data32);
        });


    });



    });

</script>

ajx_page2.php

full pure php code here
4

3 回答 3

3

出色地。当我的页面运行缓慢时。我做了以下 4 件事:

(我使用 chrome 并按 F12 )

它会准确地告诉您页面上的缓慢之处。通常的嫌疑人是您的数据库调用,因此请检查时间打印输出以确认数据库性能。

--- 可选--- 听起来你总是在为进一步的 ajax 调用引入 css。将 css 拉入主页,直到您恢复速度。

于 2012-10-06T19:19:59.473 回答
0

我在这里看到了架构问题,

为什么你不只是制作简单的 .js 独立文件,它将执行 ajax 请求,检查success: function() {}参数$.post()

解决问题的方法让我假设 php 代码也被奇怪的解决方案超载,导致速度变慢。

还要记住 - javascript 是客户端,如果您尝试以这种方式使用任何 ACL,那么请制定您的 dao。:)

于 2012-10-08T02:57:14.867 回答
0

明智的做法是找到一种更有效的方式来处理您的数据。我的第一个想法是通过将 ajax_page2 中的代码包含到 ajax page 1 中来避免使用第三个 php 脚本,或者甚至将 ajax_page_1 中的 php 代码组合起来并对页面本身进行 ajax 调用

如果您不被允许或不能这样做,请尝试缓存您的结果以加快您的进程,一种方法是使用 memcached 甚至自定义脚本:例如http://www.profilepicture.co.uk /缓存-api-responses-php/

于 2012-10-08T03:30:29.493 回答