使用 TIdHTTP 控制元件訪問一個網頁 , 其中 Get() 操作的時間是 230ms ,Post() 卻需要1000ms , 使用抓包工具發現Post()操作比 get()操作 多出一個 Connect 的程序 , 這個操作每次都需要640ms , 耗費了很長的時間 。
而使用 瀏覽器 打開這個網頁時 post() 和 Get() 所用的時間都是差不多的,都只有200多ms。
請問大神們這是怎么回事? 如何使post()操作效率高點嗎?
uj5u.com熱心網友回復:
這個我懷疑是快取的問題。IE瀏覽器是將資訊快取在系統中的,IE是一個外殼程式,關閉IE這個快取仍在,你最好的測驗方法是清空IE的快取,斷網狀態下重啟計算機,啟動監聽,連接網路,用IE訪問指定網頁,在這個真實的第一次訪問的速度你看下是什么效果對于IdHTTP,其提供的一些引數可以實作先行連接的功能,就是執行一次連接,如果不改變網址的話就不需要第二次連接,之后再POST的話就應該節省一點時間了
uj5u.com熱心網友回復:
同意,學習了
uj5u.com熱心網友回復:
大神說的很對 , 按照您說的清空瀏覽器后連接目標網頁 , 抓包中確實發現的一些不一樣的 重定向 連接 , 并且還在Cookie中設定了 auth 這個欄位 , 可能于這個有很大關系 。 所以我也用了重定向 , 但是 遇到一個問題 , 瀏覽器 可以將 Post 方法重定向為 Get 方法, 而 TIdHTTP Post 重定向之后還是 Post , 有什么 方法 可以修改TIdHTTP 的重定向的方法嗎 ?
uj5u.com熱心網友回復:
大神說的很對 , 按照您說的清空瀏覽器后連接目標網頁 , 抓包中確實發現的一些不一樣的 重定向 連接 , 并且還在Cookie中設定了 auth 這個欄位 , 可能于這個有很大關系 。 所以我也用了重定向 , 但是 遇到一個問題 , 瀏覽器 可以將 Post 方法重定向為 Get 方法, 而 TIdHTTP Post 重定向之后還是 Post , 有什么 方法 可以修改TIdHTTP 的重定向的方法嗎 ?
uj5u.com熱心網友回復:
PosT 重定向失敗后 的手動增加一個 Get操作解決了重定向失敗 , 綜上 的 修改之后 , Post 的速度還是沒有提高, 同之前一樣 , 這是什么問題呢?轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/113045.html
標籤:網絡及通訊開發
