En iyi IE Geri Düğmesi ile başa çıkmak için uygulamalar (ve Firefox) nelerdir

3 Cevap php

Ben eski sayısında bu biliyorum ama ben geri düğmesi ile başa çıkmak için en iyi uygulamaları anlamaya olamaz.

Ben tarayıcı ve arka uç sunucu arasındaki veri hareketi çok olan bir web uygulaması yazıyorum. Kullanıcı uygulama navigasyon atlar ve verileri yeniden istiyorsanız IE ve Firefox açılan mesajları hem kullanıcı soran geri düğmesine kullandığında ben şu anda yazı kullanımı ve tabii ki.

Ben URL içinde görüntülenen tüm veriler kenara "almak" ve denedim, IE8 hala bir mesaj üretir.

Ayrıca ben gerçekten sonrası bir mesajı neden olduğunda belirlemek ve ben geri düğmesine bir mesaj neden olmaz verilerini yayınlamaktan test durumları var çünkü, değil zaman. Olamaz

Benim çevre JavaScript, PHP ve MySQL.

Bir araştırma konuma herhangi bir yardım veya işaretçi büyük beğeni topluyor.

Düzenlendi:

Ben-> b-> c-> a gönderme sınamak için 3 küçük sayfa yazdı ve herhangi postdata iletileri neden olmaz. Nedenini bilmiyorum:

A

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test post A</title>
</head>
<body>  
<h1>testPostA.php</h1>
<h3>Came from <?php print (isset($_POST['data'])?$_POST['data']:"NoWhere"); ?></h3>
<form action="testPostB.php" method="post">
    <input name="data" type="text" value="from testPostA.php" />
    <input type="Submit" value="Submit To: testPostB.php" />
</form>
</body>
</html>

B

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test post B</title>
</head>
<body>  
<h1>testPostB.php</h1>
<h3>Came from <?php print (isset($_POST['data'])?$_POST['data']:"No where"); ?></h3>
<form action="testPostC.php" method="post">
    <input name="data" type="text" value="from testPostB.php" />
    <input type="Submit" value="Submit To: testPostC.php" />
</form>
</body>
</html>

C

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test post C</title>
</head>
<body>  
<h1>testPostC.php</h1>
<h3>Came from <?php print (isset($_POST['data'])?$_POST['data']:"No where"); ?></h3>
<form action="testPostA.php" method="post">
    <input name="data" type="text" value="from testPostC.php" />
    <input type="Submit" value="Submit To: testPostA.php" />
</form>
</body>
</html>

3 Cevap

Post/Redirect/Get deseni yeniden POST uyarı önleyecektir. Ancak, yine de yinelenen form gönderimleri ve benzeri reddetmek / uygulama işleyebilir dikkat çekmek için var.

Edit 1

JavaScript üzerinde ağır bir uygulama için, ben de browser history ve fragment identifiers vb geri düğmesi, imleme ile daha sorunsuz bir entegrasyon sağlamak için kaldıraç bazı tasarım desenleri gördüm

Edit 2

Sorunuzun zeyilname ile ilgili olarak, söylemek zor. Bu bazı durumlarda tarayıcı sayfa önbelleğe sahip ve sayfayı yeniden işlemek için POST yeniden gerekmez ki olabilir. Sen (yani her zaman tekrar gönder uyarıyı neden) davranış daha öngörülebilir yapabilirsiniz görmek için bu istekleri tarayıcı önbelleğini devre dışı çeşitli yollarla etrafında oynayabilir. Her neyse, ben Post / yönlendirme / Yol desen takip web uygulamaları biraz daha kullanıcı dostu olduğunu düşünüyorum, ama sizin kilometre değişebilir.

Akılda tutulması gereken bir diğer şey, sizin URL şeması zengin yapar ve bu önler çünkü Bazen bu salt okunur senaryolarda daha iyi bir seçenektir GET yöntemi =, vb sorgular performans raporları üreten formlara "olsun" kullanabilirsiniz olduğunu POST uyarılar tür.

Sen Yanıt geri geldiğinde, istediğiniz ne olursa olsun sayfa onları yönlendirmek, sonra veri göndermek için ajax kullanabilirsiniz.

Onlar gitmek için çalıştığınız sayfa ilk POST formu gönderiminden gezindiği zaman yeniden göndermek verileri kullanıcı istemi görüntülenir. AJAX POST'ing her türlü yaparsanız kullanıcı geri veya ileri kendisine giderse, yeniden göndermek istemi görüntülenir olmayacaktır.

Hiç bu istemi almamak için, sadece AJAX, veya POST kullanın ve ardından yönlendirme olabilir. Ancak, bu (örneğin Amazon'un sepeti,) pek çok web uygulamaları davranıştır. Ben uygulama bağlamında veya davranışın tam olarak farkında değilim, ama bu yinelenen verileri izin vermiyor konum, özellikle eğer, dert etmenize gerek bir sorun olduğunu tam olarak ikna olmuş değilim.