2011-07-09 27 views
5

Bir sayfada bazı sürülebilir ve yeniden boyutlandırılabilir DIV'ler var. Bu DIV'lerin durumunu kaydetmek istiyorum, böylece sayfa yenilendiğinde, DIV'ler tam olarak yenilemeden önceki gibi görünür.html öğelerinin durumunu kaydetme sayfa yenileme

Bunu yaparken Facebook sohbeti gibi şeyler fark ediyorum. Sayfayı yenilediğinizde açık bir sohbet penceresi açık kalacaktır. Bunun nasıl uygulandığını bilen var mı? Birisi bana benzer bir şey yapmama konusunda tavsiyede bulunabilir mi?

+0

Çözümün javascript kullanması gerekiyor mu? Facebook sohbet uygulamak için ajax kullanır –

+0

Olası kopya: http://stackoverflow.com/questions/4007131/can-i-capture-and-save-the-current-state-of-a-webpage-using-javascript –

cevap

5

Eğer Facebook'un yaptığı gibi yapmak isterseniz, facebook'un belirli aralıklarla başka bir sayfanıza AJAX istekleri göndermeniz gerekecektir, her mesaj gönderdiğinizde. Bu sayfa AJAX isteğini ayrıştırır ve veritabanında günceller. Sayfayı yenilediğinizde, sohbetde neyin görüntüleneceğini görmek için veritabanı çağrılır.

Çerez kullanma ile ilgili sorun boyut sınırlamasıdır (Facebook veritabanını kullanarak sohbet günlerini saklayabilir).

Ayrıca, istemcinin çerezleri devre dışı bırakılmış olması nedeniyle endişelenmenize gerek yoktur, çünkü tüm bilgiler sunucuda saklanır.

1

Mmm, basit, ama mümkün değil. Bu 'durumu' bir çerezde saklamalı ve ardından bu çerezi sayfa odağında (veya yüklemede) almalısınız. çerezleri yalnızca dizeleri itiraf gibi

, sen

var str = JSON.stringify(obj); 

kullanarak dizeleri javascript nesneleri dönüştürebilir ve (JSON fonksiyonları modern tarayıcılarda desteklenir) geri dönüştürmek

var obj = JSON.parse(str); 

kullanmak.

Bu şekilde, bir javascript nesnesini kaydedebilir/alabilirsiniz, ihtiyacınız olan her şeye (istediğiniz durumda) bazı koordinatları, konumları, boyutları saklayabilirsiniz.

Bu yardımcı olur umarım. Şerefe

+0

I Onunla oynayacağım ve ne bulabileceğimi göreceğim. Bir çerezde ne kadar veri saklanabilir? Tüm çerezler her istek için sunucuya gönderildiği için gecikme süresi konusunda endişelenmeli miyim? – matt

+0

Çerez başına en fazla 4 kb saklayabilirsiniz. Nesne serileştirme 1k'den fazla meşgul olmamalı (yaklaşık 200 bayt yeterli olacaktır), bu yüzden gecikme kesinlikle bir problem değil –

0

Sadece sunucu tarafındaki verileri kaydeden bir AJAX sistemi kullanarak bitti. Daha sonra sayfa yeniden yüklendiğinde, uygun görüntüyü oluşturmak için kaydedilen oturum verilerini kullanır.

İlgili konular