jyy00713692 2009-06-24 12:27
浏览 244
已采纳

为什么这么用ajax不能实现异步,请指点下,第一次来这里提问,谢谢了

我要实现的目的是:做一个播放视频的页面,左边是播放列表,右边是播放器,左边播放列表分页,当点击下一页等时,不刷新页面。
我实现的方法是:制作一个playlist页面,用来查询数据库,获取播放地址,名称等值,一个play页面,用于播放视频,显示播放列表。
当打开play页面时,使用xmlhttp.open向playlist传递参数,然后playlist输出一个xml,在play页面利用javascript或者xml的内容,生成播放列表的超级链接。
我目前的问题是:
1.点超级链接,不能播放,(我用href等于一个javascript函数,用该函数改变播放器的地址value)
2.不能实现异步,我是用javascript生成的列表,等换页的时候为什么不能异步么?是不是因为我查询数据库的时候,只是查询当前页的数据,不是一下查询所有的,放在javascript里,所以造成不能异步呢?

我的代码如下:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.math.BigDecimal"%>
<%@ page import="java.text.DecimalFormat" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<% String collectionid;
String strPage="";
int intPage;
collectionid=request.getParameter("collectionid");
//out.println(collectionid);

   strPage=request.getParameter("page");//取得待显示的页码
   if(strPage==null){ 
                     //表明在QueryString中没有page这一个参数,此时显示第一页数据 
                     intPage = 1;

        } else { 
         //将字符串转换成整型 
        intPage = java.lang.Integer.parseInt(strPage); 

         if(intPage<0) intPage = 1;

      }
             //out.println(intPage);

%>







var pagenum=1; function alterplayer(collectionid,url,format){ alert("111"); var player =document.getElementById("player"); //alert(player); player.setAttribute("value","http://localhost:8080/jsx/video/"+collectionid+"/"+url+"."+format+""); } function go(){ pagenum=pagenum+1; document.getElementById("sidebar").innerHTML=""; validate(); } function gg(){ if(pagenum==1) pagenum=1; else pagenum=pagenum-1; validate(); } var xmlHttp; var id; function createXMLHttpRequest(){ if(window.ActiveXObject){ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } else if(window.XMLHttpRequest){ xmlHttp=new XMLHttpRequest(); } } function validate(){ createXMLHttpRequest(); var url="/jsx/word/playlist1.jsp?page="+pagenum+"&collectionid=<%=collectionid%>"; //alert(url); xmlHttp.open("POST",url,true); //var player =document.getElementById("player"); //alert(player.value); xmlHttp.onreadystatechange=callback; xmlHttp.send(null); } function callback(){ if(xmlHttp.readyState==4){ show(); } } function show(){ var xmlDoc=xmlHttp.responseXML; var xmlDoc1=xmlHttp.responseText; var a=""; // alert(xmlHttp.responseText); // alert(xmlHttp.responseXML.xml); var collection=xmlDoc.getElementsByTagName("collection"); var url=xmlDoc.getElementsByTagName("url"); var format=xmlDoc.getElementsByTagName("format"); var sn=xmlDoc.getElementsByTagName("sn") // alert(url.length); //document.write(url.length); //document.write(collection[0].childNodes[0].nodeValue); //document.write(url[0].childNodes[0].nodeValue); //document.write(format[0].childNodes[0].nodeValue); for(var i=0;i<url.length;i++) { a+="<a href='javascript:alterplayer("+collection[i].childNodes[0].nodeValue+","+url[i].childNodes[0].nodeValue+","+format[i].childNodes[0].nodeValue+")'>"+sn[i].childNodes[0].nodeValue+"</a><br><br>"; //document.getElementById("sidebar").innerHTML="<a href='/jsx/word/play1.jsp?name=new&number=lession1';>第"+i+"课</a>"; } //alert(a); document.getElementById("sidebar").innerHTML=a;}

body { font-family:Verdana; font-size:14px; margin:0;} #container {margin:0 auto; width:100%;} #header { height:100px; background:#9c6; margin-bottom:5px;} #menu { height:30px; background:#693; margin-bottom:5px;} #mainContent { height:500px; margin-bottom:5px;} #sidebar { float:left; width:200px; height:400px; background:#cf9;} #fenye { top:500px; left:0px; width:200px; height:100px; background:#cc9;} #content { margin-left:205px !important; margin-left:202px; height:500px; background:#ffa;}/*当content设定高度后,3像素会跑到content外侧,这样,我们用!important修正在ie下向左多浮动2像素,加上3像素的bug正好是5像素,所以在火狐和IE下显示是一样的*/ #footer { height:60px; background:#9c6;}

logo
validate();
player


copyright


  • 写回答

2条回答 默认 最新

  • wanghaolovezlq 2009-06-24 20:15
    关注

    每次只取1页,用ajax没什么问题啊,

    你确定你发送的ajax请求成功返回了数据没啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档