我有一个搜索结果页面,人们可以在其中输入他们想要搜索的单词,搜索结果将根据他们单击的按钮显示在网格视图和列表视图中。
如果单击 Grid View 单选按钮,我正在调用一个 java 脚本函数,该函数发送 ajax 请求并在网格视图中的 div#GridView 内填充搜索匹配项。
两秒钟后,我调用了与发送 ajax 请求相同的函数,以使用其他结果填充 div#ListView。我这样做是因为用户可以在任何时间点切换到列表视图或网格视图,并且它会显示在其他视图中的结果相同。此时ListView设置为不显示。同样的事情发生在List View上。
问题是因为发送了两个 ajax 请求,加载图像显示了两次,一次用于列表视图,另一次用于网格视图。
如何防止此加载图像显示两次。
谢谢您的回复
HTML 代码
<body>
<input type="text" name="txtSearchTerm" id="txtSearchTerm"/>
<input type="radio" name="rdoView" onclick="PopulateSearchResult('ListView')"/>List View
<input type="radio" name="rdoView" onclick="PopulateSearchResult('GridView')"/>Grid View
<div id="SearchResult">
<div id="GridView"></div>
<div id="ListView"></div>
</div>
<body>
Javascript
function PopulateSearchResult(pView)
{
(pView == 'ListView')?OtherView = 'GridView':OtherView = 'ListView';
$('#'+pView).show();
$('#'+OtherView).show();
DisplayMsg(pView);
setTimeout("DisplayMsg('"+OtherView+"')", 2000);
}
function DisplayMsg(pView)
{
url = '/';
$('#SearchResult').html('<div><img src="loading.gif"/></div>');
$.get(
url,
{
"SearchFor" : $('txtSearchTerm').val(),
"DisplayIn" : pView
},
function(responseText){
$('#SearchResult').html(responseText);
},
"html"
);
}