2016-04-08 18 views
-2

Bir java/spring/jsf/jsp web uygulamasına sahip olduğumu varsayalım. Kullanıcı gerekli tüm alanları doldurur, tüm seçenekleri seçer, tıklamaları rapor üretir, bahar fasulyeleri işlerini yapar, veritabanı bilgi için sorgulanır ve kullanıcı girilen bilgilere göre oluşturulan bir "rapor" sayfasına yönlendirilir. Bu sayfanın daha sonra erişilebilen bir bağlantı mevcut sayfa bağlantısıyla erişilmesini sağlamanın bir yolunu arıyorum. Bunun bir örneği, bilgiyi girebileceğiniz, kaydedebileceğiniz ve paylaşılabilir bir bağlantı alabileceğiniz jsfiddle.net olabilir.

Şu anki bilgime sahip olduğumda, birisi www.websiteUrl.com/extensionHash sitesine eriştiğinde ancak her seferinde bir sorgu oluştururken, o anda görüntülenen sayfa özellikleriyle birlikte veritabanı ve sorgu veritabanına bir tür URL uzantısı kaydetme Birisi uzatma erişir performans üzerinde ağır gibi görünüyor.
Başka bir yol, tüm html sayfasını veya yalnızca sunucudaki içerik bölümünü kaydedip daha sonra istek üzerine sunulabilir.

Bunu yapmanın en basit/verimli yolu nedir? Ne yapabilirsinizGeçerli sayfa gösterme paylaşımını kaydet

Başvurunuz başlar Uygulama Bağlamında Java (ServletContext'te verileri koyduğunuzda veritabanından de bu raporu gerekli verileri yükleyebiliriz:

+0

Bu "ağır" varsayımı ölçmediniz mi? Bunu yapın ve buna göre yeniden çalışın. Ölçme bilmek. Genellikle cevap "önbellek" dir. Soruna, kullanılan DB ve/veya kalıcılık katmanı hakkında hiçbir şey söylemeyen etiketler yerleştirdiniz, ancak örn. JPA 2. seviye önbelleği destekler. – BalusC

+0

Bu, "bunu yapmanın tek yolu" sorusundan çok "yapmanın yolları" dır. Tanımladığım şekilde istediğimi başarabildiğimi biliyorum, ama daha üretken bir yol var mı? "Veri tabanı işlemlerine karşı java kodu" başlıklarının okunması, veritabanlarının her zaman daha yavaş ve daha az üretken olduğunu gösterdi. – eight

+1

Bu yüzden insanlar önbellekleri neden icat ettiler? Sorun gerçekten kalıcılık katmanındayken, UI katmanına yoğun bir şekilde odaklanmış görünüyorsunuz. Odağı doğru hedefe taşıyorsanız (tüm sorunların temel sebebi), zaten verilen çözümleri/cevapları bulmanız daha olasıdır. Veritabanı performansı, "mevcut sayfayı paylaşım için kaydet" ile ilgili ** hiçbir şey ** içermiyor. SQL sorgularının yer aldığı diğer herhangi bir hayal ürünü kullanım durumu için de geçerlidir. – BalusC

cevap

0

Bu yerine bağlantının bir seçenektir) ve bilgi almak istediğinizde, bir veritabanı çağrısı yapmak yerine, bunu Uygulama Bağlamından alırsınız (yani temel olarak önbellekten yüklediğiniz gibi), bu şekilde perfomance'niz geliştirilir. Java'da

, bir listeleme sınıfı uygulayarak bunu başarabilirsiniz.

Downvoters: Lütfen sebebi belirtin.

+0

Bu, veritabanına her seferinde isabet etme kaygısını ortadan kaldıracak, iyi bir cevap. İndirimleri anlamıyorum. – eight

İlgili konular