台灣最大程式設計社群網站
線上人數
1207
 
會員總數:246737
討論主題:190152
歡迎您免費加入會員
討論區列表 >> ASP.NET >> Client端 想要顯示A圖卻顯示B圖問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Client端 想要顯示A圖卻顯示B圖問題
價值 : 150 QP  點閱數:264 回應數:3
樓主

a7
初學者
50 16
449 21
發送站內信

在Server端跑程式時 要顯示圖片 http://192.168.XXX.XXX/IMG/8081.jpg 圖片時都很正確是8081圖片
詭異的是 我在Client端 顯示圖片卻是 9999圖片

我看一下我圖片原始碼 在Server和Client端一致都是顯示 src是http://192.168.XXX.XXX/IMG/8081.jpg 沒錯 但就是抓9999
不知道為何會這樣..

我在IIS 去找在轉換http://192.168.XXX.XXX/IMG/8081.jpg的實體路徑 也是抓取8081
但圖片Client端 就是9999圖片 請問為何會這樣呢?

有快要30%機率有這樣問題出現




搜尋相關Tags的文章: [ 圖片 ] ,
本篇文章發表於2022-07-14 13:41
1樓
回應

P陳
檢舉此回應
這是緩衝區的問題

client-> 請讀A-> server-> disk 讀A -> server 丟A ->client
client-> 讀讀B-> server-> disk 讀B -> (還沒有讀完全)server 丟A->client

我之前的作法 請讀A(再帶亂數值9),請讀B(再帶亂數值3),讀回到後先判斷 亂數值,如果亂數值不對的話,就要再讀一次,網路世界沒辦法保證回來的時間及資料。
本篇文章回覆於2022-07-16 21:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
看您的描述
感覺上有點像是快取的問題
為了加快瀏覽的速度
如果瀏覽的資源網址與之前曾經瀏覽過的一樣
就會從Client端得快取直接把曾經下載過的圖直接顯示出來

如果您之前曾經以這樣的網址,但是下載的卻是錯的圖
雖然之後Server端已經改成新的圖檔了
但因為網址都相同,瀏覽器直接讀取快取中的圖片,而造成總是顯示錯誤的圖片

這樣的問題有幾種處理方式
讓使用者清除快取或者讓使用者以Ctrl+F5強制重新下載更新
這是一種解法,但是會讓使用者要特別操作些什麼總是不方便

另一種,方式,則是讓網址每次瀏覽都不一樣
只要網址不同,就不會使用快取
但是圖片都相同,總不能一直改名
有個小技巧是,加上參數
例如:本來的網址假設是http://www.blueshop.com.tw/img/aaa.jpg
你可以改成
http://www.blueshop.com.tw/img/aaa.jpg?t=20220718094412
加上參數,參數的值是年月日時分秒
這樣就可以讓使用者每次瀏覽的網址都是不一樣
瀏覽器就不會從快取取圖片顯示,會從Server下載圖片顯示

以上提供您參考
^_^
本篇文章回覆於2022-07-18 09:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

MIS2000 Lab
檢舉此回應
有沒有設定輸出快取(Output Cache)??

.NET Core MVC稱為回應快取(Response Cache)
本篇文章回覆於2022-07-29 18:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.