我有一个有两个选项的表单,当onclick AJAX调用一个php文件时,会创建一个包含所有可能结果的临时表。因此,如果用户再次选择其他选项,则加载速度会更快。
问题是对php文件的ajax调用总是会重新创建并插入元素,我该如何避免这种情况?如何创建临时表一次。
是否可以只调用一次php文件?
抱歉表达不好但我不熟悉PHP,AJAX等等。
我的ajax电话:
<script type="text/javascript">
function showAliveData(str,str2){
if (str=="null" || str2=="null")
{
document.getElementById("resultados").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("resultados").innerHTML=xmlhttp.responseText;
$("#tablaResultados").tablesorter("update");
}
}
document.getElementById("resultados").innerHTML='<div id="loader">La conexión con Google Analytics puede tardar unos segundos, por favor espere..</div>';
xmlhttp.open("GET","test.php?seccion="+str+"&elemento="+str2,true);
xmlhttp.send();
}
</script>
HTML:
<form name="form">
<select name="seccion">
<option value="null" style="color:#D3D3D3" disabled="disabled" selected="selected">Sección</option>
<option value="Home">Home</option><br/>
<option value="Promociones">Promociones</option>
<option value="all">- Todas las secciones -</option>
</select>
<select name="elemento">
<option value="null" style="color:#D3D3D3" disabled="disabled" selected="selected">Elemento</option>
<option value="Vitrina">Vitrina</option><br/>
<option value="Banner">Banner</option>
<option value="Destinos destacados">Destinos destacados</option>
<option value="Box">Box</option>
<option value="all">- Todos los elementos -</option>
</select>
<input type="button" value="Alive" onclick="showAliveData(seccion.value,elemento.value)">
PHP文件:
Basically
-Creates the temporary table
-Inserts all data
-display the data the user selected
提前谢谢!
答案 0 :(得分:0)
默认情况下,当数据库连接终止时,MySQL将删除所有临时表。
在这种情况下,也许临时表格不适合你,因为它们在AJAX调用之间不会持续存在。
现在,临时表本身应该是快速有效的,所以如果每次创建临时表都不行,那么你可以通过&#34; caching&#34;来绕过它。临时表会产生一个会话变量(如果存在临时表,您将使用它来代替临时表)。
参考:http://www.tutorialspoint.com/mysql/mysql-temporary-tables.htm