谁能给我解释下网站访问量为什么IE浏览器下双倍加

告白气球 2012-11-01 01:07:42
谁能给我解释下网站访问量为什么IE浏览器下双倍加
而火狐下是正确的
我的servlet里代码是:
else if(action.equals("Count"))
{
Count count=new Count();
int btcount=count.SelectCount();
System.out.println("btcount="+btcount);
int btcount1=btcount+1;
System.out.println("btcount1="+btcount1);
count.UpdateCount1(btcount1);
int btcount2=count.SelectCount();
System.out.println("btcount2="+btcount2);
request.getSession().setAttribute("btcount2",btcount2);

}
用IE浏览器 控制台输出:
btcount=93
btcount1=94
btcount2=94
btcount=94
btcount1=95
btcount2=95

用火狐浏览器 控制台输出:
btcount=93
btcount1=94
btcount2=94
...全文
254 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryanhuang2004 2012-11-09
  • 打赏
  • 举报
回复
引用 13 楼 InMyWay_ 的回复:
找到原因了 ,,但是现在都没弄懂,跟页面上的图片路径有关, 我的页面是foreach图片list,但第一张图片路径是空的,就请求2次,路径随便写个什么都是1次! 这是IE6的bug吧~~~
是的.
告白气球 2012-11-07
  • 打赏
  • 举报
回复
告白气球 2012-11-07
  • 打赏
  • 举报
回复
找到原因了 ,,但是现在都没弄懂,跟页面上的图片路径有关, 我的页面是foreach图片list,但第一张图片路径是空的,就请求2次,路径随便写个什么都是1次! 这是IE6的bug吧~~~
wangzhuoyan 2012-11-07
  • 打赏
  • 举报
回复
肯定跟请求次数有关跟你服务端代码无关,查下为啥发出2次请求,是否跟鼠标事件有关,或者程序处理过。你可以把提交按钮构置成不可用,点击后。
告白气球 2012-11-05
  • 打赏
  • 举报
回复
[quote=引用 9 楼 supphia 的回复:] 你的is,else条件代码多贴一些,怀疑是IE满足俩次条件,就执行俩次了的[/quot] 你说的哪个is else 我的action没有重复的, 这是方法:更新和查询~~ public void UpdateCount1(int btcount) { sql = "update webcounter set btcount=?"; try { dbconn = new DBConn(); conn = dbconn.getDataSource().getConnection(); pstmt = conn.prepareStatement(sql); pstmt.setInt(1, btcount); pstmt.executeUpdate(); } catch(Exception e) { logger.error("UpdateCount()方法出错:"+e.getMessage()); e.printStackTrace(); } finally { dbconn.closePreparedStatement(pstmt); dbconn.closeConnection(conn); } } /**************************************************************** ** 函 数 名:SelectCount ** 功能描述:查询网站访问量 ** 输入参数:无 ** 输出参数:无 ** 返 回 值:int ** 创 建 人: ** 日 期: ** 修 改 人: ** 日 期: ****************************************************************/ public int SelectCount() { int btcount = 0 ; sql = "select btcount as btcount from webcounter"; try { dbconn = new DBConn(); conn = dbconn.getDataSource().getConnection(); pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); while(rs.next()) { btcount = rs.getInt("btcount"); } } catch(Exception e) { logger.error("SelectCount()方法出错:"+e.getMessage()); e.printStackTrace(); } finally { dbconn.closeResultSet(rs); dbconn.closePreparedStatement(pstmt); dbconn.closeConnection(conn); } return btcount; }
supphia 2012-11-01
  • 打赏
  • 举报
回复
你的is,else条件代码多贴一些,怀疑是IE满足俩次条件,就执行俩次了的
ryanhuang2004 2012-11-01
  • 打赏
  • 举报
回复
<jsp:include>标签应该是服务器端进行解释的吧...这么说的话更加应该和浏览器无关系了.
要么是你上一个页面进来的时候有问题?
告白气球 2012-11-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

1.用httpWatch工具抓一下请求报文,看看是否请求了两次。
2.是否js提交和submit按钮提交都触发了,如果是,则有两次了,删除一个即可。
[/Quote]

就调用了一次:
<jsp:include page="../servlet/YhxxServlet?action=Count"></jsp:include>
zxw4377 2012-11-01
  • 打赏
  • 举报
回复
1.用httpWatch工具抓一下请求报文,看看是否请求了两次。
2.是否js提交和submit按钮提交都触发了,如果是,则有两次了,删除一个即可。
告白气球 2012-11-01
  • 打赏
  • 举报
回复
IE是执行了2次 可是我怎么让她执行一次呢 代码一样的 为什么火狐都是好的呢
jinoon 2012-11-01
  • 打赏
  • 举报
回复
进行操作的时候浏览器请求了两次 可能是由于页面标签 多次提交等造成的

功能如果只是简单的一次+1,可以直接在sql里面字段 +1 就好,上面只有一次更改数据库,查这么几次就不必了

-------------------------------------
不行 debug!
isea533 2012-11-01
  • 打赏
  • 举报
回复
断点调试,估计IE下执行了两次。
告白气球 2012-11-01
  • 打赏
  • 举报
回复
别沉啊
告白气球 2012-11-01
  • 打赏
  • 举报
回复
我的思路是先查询原来的----》在原来的上面—+1 -------》再查询+1后的数据

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧