[英]reload page to reflect changes
我有我的jquery代碼
.ajax({
type: "POST",
url: "crop/crop.php",
data: dataString,
cache: false,
success: function(data){
$('#popupMargin').hide();
$('#avatar img').remove();
$('#avatar').load('crop/dp.php');
//$('#avatar').hide();
}
});
現在
//Codes in the file loaded (`dp.php`) called by jQuery above
<?php session_start(); ?>
<!-- To display display picture just after croppping -->
<img src="users/<?php echo $_SESSION['userId']; ?>/img/dp.jpg" width="150">
每當我點擊按鈕#btn
時,就會調用上面的ajax。 crop.php
文件crop.php
圖像並將其保存在dp.php
中與上面相同的位置和名稱。
所以這意味着,每當用戶點擊按鈕#btn
,圖像就會改變。 我希望將更改反映為$('#avatar').load('crop/dp.php');
在上面的jQuery代碼中調用; 但是,我不確定是否存在舊圖像仍然存在的某種緩存。
.load()
重新加載頁面嗎? 如何確保顯示更改(更新的圖像)而不是舊的更改?
我建議追加:
'?foo='+Math.random();
到你的圖像路徑..它是一個很好的黑客,以確保你總是看到一個文件的最新版本(例如,通過每次提供一個不同的參數的網址 - 你保證規避任何緩存)。
如果您擔心緩存,可以將時間戳作為GET參數附加到ajax請求中。 這通常會迫使瀏覽器下載新的副本。
$('#avatar').load('crop/dp.php?' + (new Date().getTime()));
另外,如果$ _SESSION ['userId']在請求之間保持不變,那么強制重新加載實際的jpg也不會有什么壞處。
<img src="users/<?php echo $_SESSION['userId']; ?>/img/dp.jpg?<?php echo time(); ?>" width="150">
希望有所幫助。
嘗試$_SESSION
變量的var_dump
以確保它在PHP代碼中更改。
確保在crop/crop.php
和crop/dp.php
您在代碼頂部有session_start()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.