ajax请求的网页状态显示为待处理

时间:2017-11-02 06:09:03

标签: php jquery ajax codeigniter e-commerce

我开发了一个电子商务网站。我有一个索引页面和一个产品页面。 索引页面有家庭,杂货等标题菜单。如果我点击杂货href链接它通过ajax方法将产品(所有与杂货相关的相关产品)页面加载到索引,因此只有少数页面内容被更改。导航到杂货店链接后,在产品页面中,我为品牌和类别制作了产品过滤器。但我的问题是我的过滤器在产品页面中运行得非常快,但是如果我们一次又一次浏览标题菜单,例如杂货 - >家用>清洁配件,产品页面开始挂起,如果打开网络状态则显示该页面待定

<a href="#" class="dropdown-toggle url" data-toggle="dropdown" data-category="Grocery">Grocery</a>

ajax功能

$(function()

        {
            $('.url').click(function(event)
            {               
            //alert("sdsdsd dfd");  

            event.preventDefault();
            var url1 = $(this).data("category");
            var url2 = $(this).data("parent");
            var url3 = $(this).data("subcategory");
            var url4 = $(this).data("childcategory");
            //alert(url1);
             $(".overlay").show();
            $.ajax({
                      url:"<?php echo base_url(); ?>Home/Products",
                      method:"POST",
                      dataType: 'json',
                      data:{catname:url1,parent:url2,sub:url3,child:url4},
                        success:function(data)
                        {
                             //alert(data.page);
                             $('#body').html(data.page);
                        },

                          complete: function(){
                            $(".overlay").hide();
                          }


            });
        });
    }
    );

这是我如何将响应从控制器

返回给ajax
$page['page'] = $this->load->view('products', $data, true);
$this->output->set_content_type('application/json');
$this->output->set_output(json_encode($page));

请点击链接告诉我解决方案

https://www.frocerie.com/demo/

注意:目前你可以浏览杂货 - &gt;家庭&gt;清洁aceesories

1 个答案:

答案 0 :(得分:0)

您可以尝试将其作为HTML发送回来,将HTML放入请求的响应中是没有问题的。

$this->load->view('products', $data);

仅发回HTML,

 success:function(data)
 {
     $('#body').html(data);
 },

然后你必须改变你的成功:

$time = microtime(true);
json_encode($page['page']);
echo (microtime(true) - $time) * 0.001;

如果你想看看将它编码为json需要多长时间,你可以这样做

catname:Grocery
parent:Household
sub:Cleaning Accessories

基本上获取microtime(以毫秒为单位的时间),运行该函数,然后从开始时间减去当前时间。

http://php.net/manual/en/function.microtime.php

<强>更新

如果你去这里把你的东西放进去(希望我可以保存页面)

https://www.hurl.it/

然后选择“发布”并添加您的网址和您的请求数据作为参数

//

您可以看到响应是什么。您也可以在网络选项卡或浏览器控制台(通常是f12)

中进行检查

我也可以告诉你运行PHP 5.4.45:)

为了获得额外的功劳,一旦你开始工作,你可以试试这个(有时它会混淆javasript,主要是如果你有内联评论 function minify( $text ){ $search = array( /*you could try this '/\s\/\/.+/', //strip inline comments - //comments */ '/\>[^\S ]+/s', // strip whitespaces after tags, except space '/[^\S ]+\</s', // strip whitespaces before tags, except space '/(\s)+/s' // shorten multiple whitespace sequences ); $replace = array( /* '', */ '>', '<', '\\1' ); $text = preg_replace($search, $replace, $text); return $text; }

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    int i=0, j=0,T;       

    T=getchar();
    int ch;
    for(i=0; i<T ;i++)
    {
        int cnt=0;
        char str[200];
        while ((ch = getchar()) != '\n' && ch != EOF)
        {
            str[cnt] = ch;
            cnt++;
        }
        str[cnt]='\0';
        printf("\n%s",str);
    }

    return 0;
}

但它会消除大部分空白,使你的反应更小。