今天在做一個進度條的時候遇到一個問題,我在session里面存放了一個計數器,當爬取到一條數據的時候這個值+1,然后前臺每隔3s中獲取一次session的這個值,但是問題出來了,在FF下面,得到的值都是正常的,但是在IE下面死活都是之前的值,只有當重新打開頁面的時候才能獲取到最新的 session值:
下面是我的proBar.jsp的代碼:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><script type="text/javascript" src="<%=path %>/js/jquery.js"></script><script type="text/javascript" src="<%=path%>/js/jquery.progressbar.min.js"></script><script type="text/javascript">function createXMLHttpRequest() { var xmlHttp; if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else { xmlHttp = new XMLHttpRequest(); } return xmlHttp; } function btn_click() { var xmlHttp; xmlHttp = createXMLHttpRequest(); xmlHttp.onreadystatechange = processor; //xmlHttp.open("GET", "/jbbs/servlet/ControlCrawl?method=getinforsize", true); xmlHttp.open("POST", "/jbbs/servlet/ControlCrawl?method=getinforsize", true); xmlHttp.send(null); function processor() { ....... } } var action=setInterval("btn_click();", ); </script><span>爬取進度:</span><br/><div id="container"></div>
后來把GET改為POST就正常了。
PS:關于HTTP的GET和POST
Http定義了與服務器交互的不同方法,最基本的方法有4種,分別是GET,POST,PUT,DELETE。URL全稱是資源描述符,我們可以這樣認 為:一個URL地址,它用于描述一個網絡上的資源,而HTTP中的GET,POST,PUT,DELETE就對應著對這個資源的查,改,增,刪4個操作。 到這里,大家應該有個大概的了解了,GET一般用于獲取/查詢資源信息,而POST一般用于更新資源信息?! ?br />
1.根據HTTP規范,GET用于信息獲取,而且應該是安全的和冪等的?! ?/p>
(1).所謂安全的意味著該操作用于獲取信息而非修改信息。換句話說,GET 請求一般不應產生副作用。就是說,它僅僅是獲取資源信息,就像數據庫查詢一樣,不會修改,增加數據,不會影響資源的狀態?! ?/p>
* 注意:這里安全的含義僅僅是指是非修改信息。
(2).冪等的意味著對同一URL的多個請求應該返回同樣的結果。
冪等(idempotent、idempotence)是一個數學或計算機學概念,常見于抽象代數中。
冪等有一下幾種定義:
對于單目運算,如果一個運算對于在范圍內的所有的一個數多次進行該運算所得的結果和進行一次該運算所得的結果是一樣的,那么我們就稱該運算是冪等的。比如絕對值運算就是一個例子,在實數集中,有abs(a)=abs(abs(a))。
新聞熱點
疑難解答
圖片精選