`

异步请求

阅读更多

<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();
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    一个Http异步请求的例子

    在异步请求中,客户端不会等待服务器的响应就继续执行其他任务,这样可以避免程序在等待网络操作时冻结。 Delphi,作为一款强大的RAD(快速应用开发)工具,提供了多种库和组件来支持HTTP异步请求。在这个例子中,...

    javaHttp异步请求

    `AsyncClientHttpExchangeStreaming` 类可能是一个自定义的类,用于封装`HttpAsyncClients`的异步请求逻辑,特别是针对流式传输(streaming)的场景。流式传输在处理大文件或持续的数据流时非常有用,因为它允许数据...

    jQuery-ajax-用户名异步请求

    首先,我们需要在HTML中创建一个输入框和一个按钮,用于获取用户名和触发异步请求: ```html 请输入用户名"&gt; 检查用户名 ``` 然后,我们可以编写jQuery代码来监听按钮点击事件,并使用Ajax发起请求: ```...

    Go-gohttp支持异步请求的Go的HTTP客户端

    通过使用异步请求,我们可以同时发送多个请求,提高程序的执行效率,这对于大数据分析、负载均衡或者批量任务处理等场景非常有用。 首先,让我们了解一下异步请求的概念。在同步模式下,程序会等待每个HTTP请求完成...

    基于libcurl 的http异步请求

    这个小程序只是简单的使用线程池实现了libcurl的异步请求功能,很多地方还需要优化,之所有厚颜上传到这里,主要有有三个目的。 一个是回报这些天在CSDN上得到的帮助,希望可以帮助到后来的人; 二是感于libcurl编译...

    HTTP异步请求数据Demo(C#)

    首先,让我们了解HTTP异步请求。在C#中,我们可以使用HttpClient类来执行这些操作。HttpClient提供了异步方法,如GetAsync、PostAsync、PutAsync和DeleteAsync,它们允许我们在不阻塞主线程的情况下发送HTTP请求。这...

    QT C++ http get、post 同步异步请求

    - **异步请求**:请求在后台线程执行,不会阻塞主线程,允许UI继续更新。当请求完成时,可以通过信号和槽机制或回调函数来处理结果。 4. **netserver.cpp和netserver.h** 这两个文件很可能是实现HTTP请求功能的类...

    http异步请求例子源码

    HTTP异步请求是一种在客户端与服务器之间进行通信的技术,它允许程序在不阻塞主线程的情况下发送请求并处理响应。这种非阻塞的特性对于提高应用程序的性能和用户体验至关重要,尤其是在处理大量网络请求或者需要实时...

    jquery异步请求例子

    在JavaScript的世界里,jQuery是一个非常流行的库,它简化了DOM操作、事件处理以及,当然,异步请求。本文将深入探讨jQuery中的异步请求,即AJAX(Asynchronous JavaScript and XML),并提供一个实例来帮助理解。 ...

    Ajax异步请求的验证

    本篇文章将深入探讨Ajax异步请求的验证,解决初级问题,为初学者提供参考。 一、Ajax的基本概念 Ajax并非一种单一的技术,而是一种利用现有Web技术(如JavaScript、XML、HTML、CSS等)组合成的新应用方式。它的...

    layui-tree实现Ajax异步请求后动态添加节点的方法

    在本示例中,我们需要实现一个功能:当用户在树形菜单中选择某一节点时,通过 AJAX 异步请求向后台添加新的子节点,并在前端动态显示出来。 首先,我们看到 HTML 结构中有一个 `#demo` ID 的 `ul` 元素,它是 layui...

    RxJava2.0异步请求

    这个压缩包文件“TestRxJava20”很可能包含了示例代码,帮助新手快速理解和上手RxJava2.0的异步请求。 首先,我们来深入了解一下RxJava的核心概念。RxJava基于 Reactive Extensions (RX) 的理念,它将观察者模式、...

    ajax异步请求小结

    **Ajax异步请求小结** Ajax(Asynchronous JavaScript and XML)是一种用于创建快速、动态网页的技术,它允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。这种技术极大地提升了用户体验,...

    Ajax异步请求

    Ajax异步请求 Ajax异步请求是一种基于JavaScript和XMLHttpRequest对象的技术,允许Web应用程序在不刷新整个页面的情况下,更新页面的一部分内容。它可以实现异步通信,提高用户体验和页面加载速度。 在Ajax异步...

    iOS开发架构封装异步请求案例实现

    ### iOS开发架构封装异步请求案例实现 #### 一、背景与目的 在iOS开发过程中,网络请求是非常常见且重要的一个环节。对于开发者而言,如何高效地管理这些网络请求成为了一个不可忽视的问题。特别是异步请求,由于...

    ajax .net 异步请求方式

    本文将深入探讨.NET中实现AJAX异步请求的几种方法。 一、ASP.NET AJAX库 1. UpdatePanel:ASP.NET AJAX库中最基础的异步更新组件是UpdatePanel。它创建了一个局部刷新的区域,使得在这个区域内进行的任何操作都可...

    异步请求.post()和.ajax({})的区别

    异步请求是现代Web开发中常见的一种技术,用于在不阻塞当前页面执行的情况下与服务器进行数据交换。在JavaScript中,有两个常用的方法可以实现异步请求:$.post()和$.ajax({})。尽管它们的目的相似,但它们在使用...

    Android异步请求网络图片demo

    "Android异步请求网络图片demo"是一个示例项目,旨在演示如何在Android应用中有效地、非阻塞地下载并显示网络上的图片。这个项目的核心知识点主要包括以下几个方面: 1. **AsyncTask**: Android提供了`AsyncTask`类...

    dns异步请求池代码实现

    dns异步请求池代码实现 1. dns协议解析 2. 通过epoll实现异步请求

    Ajax异步请求简单示例

    本示例将展示如何使用Ajax进行简单的异步请求。 首先,我们需要了解Ajax的工作流程。Ajax请求通常包含以下步骤: 1. **创建XMLHttpRequest对象**:这是所有Ajax操作的基础。在现代浏览器中,我们可以直接创建`...

Global site tag (gtag.js) - Google Analytics