簡體   English   中英

重新加載頁面以反映更改

[英]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.phpcrop/dp.php您在代碼頂部有session_start()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM