我开发了一个电子商务网站。我有一个索引页面和一个产品页面。 索引页面有家庭,杂货等标题菜单。如果我点击杂货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
答案 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
<强>更新强>
如果你去这里把你的东西放进去(希望我可以保存页面)
然后选择“发布”并添加您的网址和您的请求数据作为参数
//
您可以看到响应是什么。您也可以在网络选项卡或浏览器控制台(通常是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;
}
但它会消除大部分空白,使你的反应更小。