gpt4 book ai didi

javascript - Ajax 响应在 10% 的时间内不起作用

转载 作者:行者123 更新时间:2023-11-29 17:28:23 25 4
gpt4 key购买 nike

我的问题是几乎 90% 的时间都有效,但 10% 的时间无效。我什么也得不到。它使用带有 onChange 事件的下拉框。

<script type="text/javascript">
function showCourse(str)
{
if (str=="")
{
document.getElementById("txtHint").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("txtHint").innerHTML=xmlhttp.responseText;
}
}

xmlhttp.open("GET","getcourse.php?q="+str,true);
xmlhttp.send();
}
</script>



<div>
<label for="department">Department</label>

<select name="departments" onchange="showCourse(this.value)">
<option>Select a department:</option>
<?php
for ($i = 0; $i < sizeof($mySchool->departments); $i++) {

echo "<option value=\"" . $mySchool->departments[$i]->id . "\">" . $mySchool->departments[$i]->title . "</option>\n ";
}
?>
</select>
<span id="departInfo">Choose from the following.</span>

</div>
<div id="txtHint"></div>

最后这里是 ajax 在 getcourse.php 中调用的内容

 <?php
require_once('auth.php');

$q = $_GET["q"];

$sql = "SELECT * FROM courses WHERE department_id = '" . $q . "'";

$result = mysql_query($sql);

echo "<table border='1' width='600'>
<tr>
<th>Link</th>
<th>Section</th>
<th>Name</th>
<th>Map ID: </th>
</tr>";


while ($row = mysql_fetch_array($result)) {

echo "<tr>";
echo "<td>" . $row['link'] . "</td>";
echo "<td>" . $row['section'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['map'] . "</td>";
echo "</tr>";

}
echo "</table>";
?>

最佳答案

MISE 的较新版本(我认为是 8+)正在缓存 AJAX 响应。奇怪,但真实。你不能通过设置 no-cache 或类似的 header 来欺骗 MSIE,MSIE 更清楚哪些情况应该缓存 AJAX 响应(MS 的人认为:总是) - 所以最好的办法是使用唯一的 URL ,说:

xmlhttp.open("GET","getcourse.php?q=" + str + "&rnd=" + (+new Date()),true);

(个人说明:我在我的 Linux 上安装了 Firefox、Chrome、Opera、MSIE6(!),并且我已经在所有这些浏览器上测试了我的应用程序 - 你可以想象,当用户说,它在他的机器上不工作,初始屏幕出现但没有显示进一步的变化。我不得不从我的一个 friend 那里借了一台装有 Windows 的笔记本电脑。)

关于javascript - Ajax 响应在 10% 的时间内不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6569600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com