Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 优化jQuery速度_Php_Jquery_Mysql_Optimization_Performance - Fatal编程技术网

Php 优化jQuery速度

Php 优化jQuery速度,php,jquery,mysql,optimization,performance,Php,Jquery,Mysql,Optimization,Performance,我正在尝试使用jQuery的奇特的自动完成功能,但我在执行脚本的速度方面遇到了问题。代码段: var data = <?php if(isset($names)) { echo json_encode(implode(" | ", array_unique($names))); } else { echo "null"; } ?>; if (data != null) { data = data.split(" | "); $("#search_names").au

我正在尝试使用jQuery的奇特的自动完成功能,但我在执行脚本的速度方面遇到了问题。代码段:

var data =  <?php if(isset($names)) { echo json_encode(implode(" | ", array_unique($names))); } else { echo "null"; } ?>;
if (data != null) {
    data = data.split(" | ");
    $("#search_names").autocomplete(data);
}
var数据=;
如果(数据!=null){
data=data.split(“|”);
$(“#搜索名称”)。自动完成(数据);
}
我的数据来自某个MySQL表,在jQuery将其传递到输入字段之前由PHP进行处理。当我查看这类页面的源代码时,那里有大量的文本(显然),页面本身的加载时间在5-10秒之间

所以我想知道有没有办法加快我的脚本速度?我知道,无论是在同一个文件中还是在其他包含的文件中,总是会有那么多的文本需要处理,但我只是想知道,我是因为这么多数据而被困在10秒的加载页面中,还是我能以某种方式让它更棒?:)


谢谢你的帮助

您绝对应该使用,而不是每次都将所有数据填充到文档中

第一个参数可以是远程数据的URL,也可以是本地数据的数组

对于远程数据:当用户开始键入时,将向指定的后端(“my_autocomplete_backend.php”)发送一个请求,其中包含一个名为q的GET参数,该参数包含输入框的当前值,以及一个参数“limit”,该参数的值为max选项指定


如果查找仍然需要很多时间,您可能需要研究优化PHP脚本,而不是jQuery部分。例如数据库使用索引等…

您肯定应该使用,而不是每次都将所有数据填充到文档中

第一个参数可以是远程数据的URL,也可以是本地数据的数组

对于远程数据:当用户开始键入时,将向指定的后端(“my_autocomplete_backend.php”)发送一个请求,其中包含一个名为q的GET参数,该参数包含输入框的当前值,以及一个参数“limit”,该参数的值为max选项指定


如果查找仍然需要很多时间,您可能需要研究优化PHP脚本,而不是jQuery部分。数据库是否使用索引等…

看起来您正在使用以下Script:

对于这类事情,您应该使用Ajax,例如:

 $("#search_names").autocomplete('/ajax/autocomplete.php');
然后在自动完成的html中,您应该执行以下操作:

<?php
    //Database
    //Do Query: SELECT item FROM content WHERE {$escaped_q} ORDER BY item_hits DESC LIMIT {$escaped_limit}

   //echo json_encode($results);
?>


将结果打印为JSON对象,它的工作速度应该会快得多。

使用以下scritp看起来像是您的:

对于这类事情,您应该使用Ajax,例如:

 $("#search_names").autocomplete('/ajax/autocomplete.php');
然后在自动完成的html中,您应该执行以下操作:

<?php
    //Database
    //Do Query: SELECT item FROM content WHERE {$escaped_q} ORDER BY item_hits DESC LIMIT {$escaped_limit}

   //echo json_encode($results);
?>


将结果打印为JSON对象,它应该工作得更快。

我知道这不是你的问题,但当
JSON\u encode
旨在保留你的数据结构时,将数组内爆然后进行JSON\u编码有点奇怪。您可以使用
data=JSON.parse(data)在脚本中,而不是拆分。这可以防止数据开始时出现问题,包括其他字符(如
|
)嗯,好的,我明白了。。。我一定会设法解决的。。。感谢您的关注;-)我知道这并不是你的问题的一部分,但是当
json\u encode
是为了保存你的数据结构时,对一个数组进行内爆然后进行json\u编码是有点奇怪的。您可以使用
data=JSON.parse(data)在脚本中,而不是拆分。这可以防止数据开始时出现问题,包括其他字符(如
|
)嗯,好的,我明白了。。。我一定会设法解决的。。。感谢您的关注;-)