2016-03-20 20 views
0

Bir varlığı düzenlemek için bir asp.net sayfasına sahibim. Başka bir kullanıcı zaten bu varlık için düzenleme sayfasında olduğunda kaydetmeyi bildiren ve engelleyen en iyi tasarım deseni nedir? Kullanıcı sayfayı terk ettiğinde kilidin dolmasını istiyorum. Sayfayı kilitleyen kullanıcı adını da görüntülemek istiyorum.Başka bir kullanıcı düzenliyorsa, kilit sayfası/varlık düzenlemeleri

Oturum durumu ya prova veya durum sunucusu olabilir.

kullanıcı kaydetmeye çalışmadan önce bunu yapmak için birçok farklı yolu vardır

cevap

3

(örneğin düzenleme sayfadaki tüm diğer kullanıcılar için düğmeye kaydetmek devre dışı) bilmesi gerekir, ancak genel olarak oldukça karmaşıktır. Farkında olmanız gereken bir sorun, bir kullanıcının bir sayfadan ayrıldığını bilmemenizdir, çünkü bunu belirtmenin bir yolu yoktur.

  • (örn masanıza Locked_User_ID vb ekleyin) kilitli bir kaydı var kim
  • Ekle tanımlamak için bir sütun ekleyin: Ben birkaç kez kullanılan görüldü ettik

    Bir yaklaşım aşağıdaki yapmaktır Kaydın kilitlendiği tarih/saati tanımlayan bir sütun. (ör. Locked_Timestamp)

  • Kilidin ne kadar iyi olduğunu belirten global bir sabiti (yapılandırma ayarı vb.) tanımlayın.
  • Sayfada/denetleyici yükünde, söz konusu kaydın kilitli olup olmadığını kontrol edin ve eğer öyleyse, başka bir kullanıcının hala üzerinde çalışmakta olduğuna inanmak için yeterince güncel (global sabitinize bağlı olarak) kilitliydi. Öyleyse düzenleme işlemine ve düzenlemeye ve son etkinliklerine (Locked_Timestamp & Locked_User_ID temel alınarak) görüntülemeye izin vermeyin.
  • Son zamanlarda yeterince kilitlenmemiş veya kilitlenmemişse veya kilitliyse, geçerli kullanıcıya Locked_User_ID ve geçerli tarihe Locked_Timestamp güncelleyin.
  • Kullanıcı tekrar tıkladığında/iptal ettiğinde, kaydettiğinde vb. Kaydı açtığınızda kaydı açın. (bu şekilde, global sabiti temel alan zaman aşımını beklemek zorunda kalmaz - ancak tarayıcıyı kapatırlarsa, zaman aşımı arızasız olur). "Kullanıcı ve otomatik bir kilit edinme olmadan bilgi görüntüleyebilmek için sadece bir kez onlar tıklayın -

Bunun başka hafif varyasyon uygulayan veya "düzenleme" düğmesi/işlevsellik "check-out" Bu olması check-out "veya" edit ", kilidi kontrol edip edinir.

Bu yardımcı olur umarız!

Selamlar,

Ross

İlgili konular