<div class="cs-clear cs-ib">
<span style="float: left;margin-left:-20px;">
<label for="game">游戏名称:</label>
</span>
<span style="float: left;">
<select id="game" name="game" onchange="GameServer.changeServer(this.value);gameServerChannelInsert.reGetChannels('${basePath}');">
<c:forEach items="${gameListMap}" var="map" varStatus="status" >
<option value="${map.key }" <c:if test="${ map.key==game}">selected </c:if> >${map.value }</option>
</c:forEach>
</select>
</span>
<span style="float: left;">
<label for="server_null">游戏服务器:</label>
</span>
<span style="float: left;">
<select id="server_null" name="gameServer" style="display:none; " disabled="disabled" onchange="gameServerChannelInsert.reGetChannels('${basePath}')">
<option value="null">全部</option>
</select>
<c:forEach items="${gameServerMap}" var="serverMap" varStatus="status" >
<select id="server_${serverMap.key}" name="gameServer" style="display:none;" disabled="disabled" onchange="gameServerChannelInsert.reGetChannels('${basePath}') ">
<option value="null">全部</option>
<c:forEach items="${serverMap.value}" var="gameServerPO" varStatus="status" >
<option value="${gameServerPO.pk.gameServer }" <c:if test="${ map.key==gameServer}">selected </c:if> >${gameServerPO.serverName }</option>
</c:forEach>
</select>
</c:forEach>
<input type="hidden" id="lastGameId" name="lastGameId" value='${game }'/>
<input type="hidden" id="lastGameServer" name="lastGameServer" value='${gameServer }'/>
</span>
<span style="float: left;margin-left:-35px;">
<label for="channel_null">频道:</label>
</span>
<span style="float: left;" >
<select id="channel_null" name="channelId" style="display:none; " disabled="disabled">
<option value="null">全部</option>
</select>
<select id="channelId" name="channelId" >
<option value="null">全部</option>
<c:forEach items="${gameServerChannels}" var="item" varStatus="status" >
<option value="${item.channelId}" <c:if test="${item.channelId==channelId}">selected </c:if>>${item.channelId}</option>
</c:forEach>
</select>
</span>
</div>
==============================================================================
var gameServerChannelInsert = {
"reGetChannels" : function(path) {
var game = document.getElementById("game").value;
var gameServerId = "server_"+game;
var gameServer = document.getElementById(gameServerId).value;
var url = path+'specialServer/reGetChannels.do';
var queryData = $("#queryForm").serializeArray(); //把表单元素序列化成json格式的数据
$.ajax({
type: "POST",
url: url,
data: queryData, // 相当于提交表单数据(后台能接收)
async: true,
cache: false,
// dataType: "json",
success: function(data){
$("#channelId").html(data);
}
});
},
}
==============================================================================
/**
* 异步获取频道列表
* @param response
* @param game
* @param gameServer
* @throws IOException
*/
@RequestMapping
public void reGetChannels(HttpServletResponse response, String game,String gameServer) throws IOException {
List<DimGameServerChannel> gameServerChannels = dimGameServerChannelService.getGameServerChannel(game, gameServer);
List<String> channels = new ArrayList<String>();
for (DimGameServerChannel gameServerChannel : gameServerChannels) {
channels.add(gameServerChannel.getChannelId());
}
String channelsHtml = buildChannelsToHtml(channels);
response.setContentType("text/plain; charset=gbk");
PrintWriter writer = response.getWriter();
writer.write(channelsHtml);
writer.flush();
}
private String buildChannelsToHtml(List<String> channels) {
StringBuilder channelsHtml = new StringBuilder();
channelsHtml.append("<option value='null'>全部</option>");
for(String channel : channels) {
if(StringUtils.equals("null", channel)) {
continue;
}
channelsHtml.append("<option value='").append(channel).append("'>").append(channel).append("</option>");
}
return channelsHtml.toString();
}
相关推荐
在异步请求中,客户端不会等待服务器的响应就继续执行其他任务,这样可以避免程序在等待网络操作时冻结。 Delphi,作为一款强大的RAD(快速应用开发)工具,提供了多种库和组件来支持HTTP异步请求。在这个例子中,...
`AsyncClientHttpExchangeStreaming` 类可能是一个自定义的类,用于封装`HttpAsyncClients`的异步请求逻辑,特别是针对流式传输(streaming)的场景。流式传输在处理大文件或持续的数据流时非常有用,因为它允许数据...
首先,我们需要在HTML中创建一个输入框和一个按钮,用于获取用户名和触发异步请求: ```html 请输入用户名"> 检查用户名 ``` 然后,我们可以编写jQuery代码来监听按钮点击事件,并使用Ajax发起请求: ```...
通过使用异步请求,我们可以同时发送多个请求,提高程序的执行效率,这对于大数据分析、负载均衡或者批量任务处理等场景非常有用。 首先,让我们了解一下异步请求的概念。在同步模式下,程序会等待每个HTTP请求完成...
这个小程序只是简单的使用线程池实现了libcurl的异步请求功能,很多地方还需要优化,之所有厚颜上传到这里,主要有有三个目的。 一个是回报这些天在CSDN上得到的帮助,希望可以帮助到后来的人; 二是感于libcurl编译...
首先,让我们了解HTTP异步请求。在C#中,我们可以使用HttpClient类来执行这些操作。HttpClient提供了异步方法,如GetAsync、PostAsync、PutAsync和DeleteAsync,它们允许我们在不阻塞主线程的情况下发送HTTP请求。这...
- **异步请求**:请求在后台线程执行,不会阻塞主线程,允许UI继续更新。当请求完成时,可以通过信号和槽机制或回调函数来处理结果。 4. **netserver.cpp和netserver.h** 这两个文件很可能是实现HTTP请求功能的类...
HTTP异步请求是一种在客户端与服务器之间进行通信的技术,它允许程序在不阻塞主线程的情况下发送请求并处理响应。这种非阻塞的特性对于提高应用程序的性能和用户体验至关重要,尤其是在处理大量网络请求或者需要实时...
在JavaScript的世界里,jQuery是一个非常流行的库,它简化了DOM操作、事件处理以及,当然,异步请求。本文将深入探讨jQuery中的异步请求,即AJAX(Asynchronous JavaScript and XML),并提供一个实例来帮助理解。 ...
本篇文章将深入探讨Ajax异步请求的验证,解决初级问题,为初学者提供参考。 一、Ajax的基本概念 Ajax并非一种单一的技术,而是一种利用现有Web技术(如JavaScript、XML、HTML、CSS等)组合成的新应用方式。它的...
在本示例中,我们需要实现一个功能:当用户在树形菜单中选择某一节点时,通过 AJAX 异步请求向后台添加新的子节点,并在前端动态显示出来。 首先,我们看到 HTML 结构中有一个 `#demo` ID 的 `ul` 元素,它是 layui...
这个压缩包文件“TestRxJava20”很可能包含了示例代码,帮助新手快速理解和上手RxJava2.0的异步请求。 首先,我们来深入了解一下RxJava的核心概念。RxJava基于 Reactive Extensions (RX) 的理念,它将观察者模式、...
**Ajax异步请求小结** Ajax(Asynchronous JavaScript and XML)是一种用于创建快速、动态网页的技术,它允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。这种技术极大地提升了用户体验,...
Ajax异步请求 Ajax异步请求是一种基于JavaScript和XMLHttpRequest对象的技术,允许Web应用程序在不刷新整个页面的情况下,更新页面的一部分内容。它可以实现异步通信,提高用户体验和页面加载速度。 在Ajax异步...
### iOS开发架构封装异步请求案例实现 #### 一、背景与目的 在iOS开发过程中,网络请求是非常常见且重要的一个环节。对于开发者而言,如何高效地管理这些网络请求成为了一个不可忽视的问题。特别是异步请求,由于...
本文将深入探讨.NET中实现AJAX异步请求的几种方法。 一、ASP.NET AJAX库 1. UpdatePanel:ASP.NET AJAX库中最基础的异步更新组件是UpdatePanel。它创建了一个局部刷新的区域,使得在这个区域内进行的任何操作都可...
异步请求是现代Web开发中常见的一种技术,用于在不阻塞当前页面执行的情况下与服务器进行数据交换。在JavaScript中,有两个常用的方法可以实现异步请求:$.post()和$.ajax({})。尽管它们的目的相似,但它们在使用...
"Android异步请求网络图片demo"是一个示例项目,旨在演示如何在Android应用中有效地、非阻塞地下载并显示网络上的图片。这个项目的核心知识点主要包括以下几个方面: 1. **AsyncTask**: Android提供了`AsyncTask`类...
dns异步请求池代码实现 1. dns协议解析 2. 通过epoll实现异步请求
本示例将展示如何使用Ajax进行简单的异步请求。 首先,我们需要了解Ajax的工作流程。Ajax请求通常包含以下步骤: 1. **创建XMLHttpRequest对象**:这是所有Ajax操作的基础。在现代浏览器中,我们可以直接创建`...