SORU
5 Mart 2012, PAZARTESİ


İnce ilk tepki AppCache (Symfony2) ile özel değilse?

Http önbelleğe alma özelliğini kullanmaya çalışıyorum. Benim denetleyicisi içinde aşağıdaki gibi bir yanıt ayarlıyorum

$response->setPublic();
$response->setMaxAge(120);
$response->setSharedMaxAge(120);
$response->setLastModified($lastModifiedAt);

dev modu

Dev çevre ilk yanıt olarak aşağıdaki başlıkları ile 200:

cache-control:max-age=120, public, s-maxage=120
last-modified:Wed, 29 Feb 2012 19:00:00 GMT

Sonraki 2 dakika her yanıt için aşağıdaki başlıkları ile 304:

cache-control:max-age=120, public, s-maxage=120

Bu düşündüğüm şey temelde.

mod prod

Prod modunda yanıt başlıkları farklı. App.php ben AppCache çekirdek sarma unutmayın.

İlk yanıt şu başlıkları ile 200:

cache-control:must-revalidate, no-cache, private
last-modified:Thu, 01 Mar 2012 11:17:35 GMT

No-cache, özel bir tepki değil.

Her bir sonraki isteği olmasını isteyeceğim tek şey; aşağıdaki başlıkları ile 304:

cache-control:max-age=120, public, s-maxage=120

Bu konuda endişelenmeli miyim? Beklenen bir davranış mı?

Eğer önünde Vernik veya Akamai sunucusu koyarsam ne olacak?

Hata ayıklama bir sevgi ve yanıt last-modified üstbilgi nedeniyle özel olduğunu düşündüm. HttpCache çekirdek 30* *önbelleğe alınan yanıt (HttpCache::handle() yöntem) güncelleştirmek için.

if (HttpKernelInterface::MASTER_REQUEST === $type) {
    $this->esiCacheStrategy->update($response);
}

Son Yanıt veya ETag da kullanıyorsa turns a response into non cacheable (EsiResponseCacheStrategy::add() yöntem) EsiResponseCacheStrategy:

if ($response->isValidateable()) {
    $this->cacheable = false;
} else {
    // ... 
}

Response::isValidateable() eğer Son Yanıt veya ETag Başlığı varsa, true değerini döndürür.

overwriting the Cache-Control header (EsiResponseCacheStrategy::update() yöntemi) sonuç:

if (!$this->cacheable) {
    $response->headers->set('Cache-Control', 'no-cache, must-revalidate');

    return;
}

Symfony2 kullanıcı grubu bu soruyu sordu ama bir yanıt şu ana kadar almadım: https://groups.google.com/d/topic/symfony2/6lpln11POq8/discussion

Güncelleme.

Artık orijinal kodu erişimi nedeniyle 38* *denedim.

Yanıt başlıkları daha tutarlı şimdi ama yine de yanlış gibi görünüyor.

Yanıt Last-Modified bir başlık kurar kurmaz, ilk tepki, bir tarayıcı tarafından yapılan bir vardır:

Cache-Control:must-revalidate, no-cache, private

İkinci yanıt beklenen:

Cache-Control:max-age=120, public, s-maxage=120

Ben If-Modified-Since başlık göndermemeye, her isteği must-revalidate, no-cache, private döndürür.

Eğer istek prod dev ortam artık içinde yapılmış ise bir önemi yok.

CEVAP
4 ŞUBAT 2013, PAZARTESİ


Tür çıkarım, derleyici genellikle tür bir listenin En küçük Üst sınır (VEYA) hesaplamak gerekiyor. Örneğin, if (cond) e1 else e1 tipi e1 e1 türlerinin YA.

Bu tür oldukça büyük, örneğin bu bir ÇOĞALTMA denemek olsun

:type Map(1 -> (1 to 10), 2 -> (1 to 10).toList)
scala.collection.immutable.Map[Int,scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int] with Serializable{def reverse: scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int]{def reverse: scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int]; def takeRight(n: Int): scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int]; def drop(n: Int): scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int]; def take(n: Int): scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int]}; def dropRight(n: Int): scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int]{def reverse: scala.collection.immutable.Seq[Int] with scala.collection.AbstractSeq[Int]; def dropRight(n: Int): scala.collection.immutable.Seq[Int]...

commit BU OLAYLA türleri derinliğini sınırlamak için bazı aklı denetler tanıttı.

Derleme işlemi için eklenti için bazı yeni iş hesaplamak için uzun bir zaman alabilir, ve açık tür bir açıklama akıllıca olabilir yerlerde olduğunu ima eden olayla tür tespit edilmiştir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bryan Adams

    Bryan Adams

    30 Mart 2006
  • Influencer Plus

    Influencer P

    2 Ocak 2013
  • thewinekone

    thewinekone

    17 Aralık 2005