folder Tahribat.com Forumları
linefolder Html - CSS - XML - JavaScript - Ajax
linefolder Next.Js 13 Dinamik Sayfa Önbellek Sorunu



Next.Js 13 Dinamik Sayfa Önbellek Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek

    Selamlar,

    Next.js 13 sürümü ile saçma bi hata da takıldım kaldım. Günlerdir ilerleyemiyorum. Sorunuma bir türlü somut yanıt bulamadım.

    ---

    /app klasörü içerisinde /[urun] ve /panel klasörlerim var. Bu [urun] içerisindeki sayfalarda veritabanından gelen ürün bilgilerini alıp yazdırıyorum. Veritabanında bir değişiklik yapığımda sayfalar arası geçişte olması gerektiği gibi anında yansıyor.

    /panel klasörü ise kullanıcı paneli routeu. Kullanıcılar giriş yaptığında buraya gidiyor öncelikle. Fakat bu dosya yolunda bir sorunum var. Örnek olarak kullanıcı bilgilerini güncelledi. Bu sayfaya tekrar geldiğinde cache almış veriler yer alıyor. Sadece F5 yaparsa veriler güncelleniyor. Yani sayfa hiçbir şekilde <Link yönlendirmesi ile geldiğinde güncellemiyor.

    Mesela;

    ./app/panel/page.jsx;

    export default function Home() {
      const time = new Date().toLocaleString();
      return (
        <>
          Panel Time: {time}
          <br />
          <br />
          <Link href="/">Homepage</Link>
        </>
      );
    }

    sayfa içeriğini yapsam bile timestamp güncellenmiyor. Sadece F5 yapmam gerekiyor.

    export const dynamic = "force-dynamic";

    satırını ekle çözülür diye yazıyor heryerde. Ekledim ama çözüldüğü falan yok.

    Bu sorunla daha önce karşılaştınız mı? Veya bildiğiniz çözüm var mıdır?

    Canlı test etmek isteyenler için: https://codesandbox.io/p/sandbox/cevztd 


    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    end
    end's avatar
    Kayıt Tarihi: 16/Ekim/2016
    Erkek

    https://stackoverflow.com/a/75688590

    Dene bakalim tolga hocam


    0x0480 takilin madem ﷽﷽﷽
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek
    end bunu yazdı

    https://stackoverflow.com/a/75688590

    Dene bakalim tolga hocam

    Teşekkürler hocam.

    Veriler birkaç saniye sonra güncelliyor. Tam istediğimi vermese de ihtiyacımı görecek.

    Peki sence neden direkt sayfa önbelleğe alınıyor hocam? Ürün sayfaları tam istediğim gibi çalışırken [params] içermeyen sayfalar bu şekilde statik dosya gibi önbellekten geliyor.


    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    end
    end's avatar
    Kayıt Tarihi: 16/Ekim/2016
    Erkek
    biri bunu yazdı
    end bunu yazdı

    https://stackoverflow.com/a/75688590

    Dene bakalim tolga hocam

    Teşekkürler hocam.

    Veriler birkaç saniye sonra güncelliyor. Tam istediğimi vermese de ihtiyacımı görecek.

    Peki sence neden direkt sayfa önbelleğe alınıyor hocam? Ürün sayfaları tam istediğim gibi çalışırken [params] içermeyen sayfalar bu şekilde statik dosya gibi önbellekten geliyor.

    https://stackoverflow.com/a/75065403

    burada @Eric neden kaynaklanabilecegini aciklamis hocam. 


    0x0480 takilin madem ﷽﷽﷽
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Cosmic
    Cosmic's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    panel sayfanın kodunu paylaşabilir misin?


    Bittik biz bittik
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek
    Cosmic bunu yazdı

    panel sayfanın kodunu paylaşabilir misin?

    Birebir örneği linkte;

    https://codesandbox.io/p/sandbox/cevztd 


    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    antichrist
    antichrist's avatar
    Kayıt Tarihi: 15/Ağustos/2021
    Erkek

    Hocam olayı çok anlamamakla birlikte;

    - Verileri context / store gibi bir yapıda saklaman

    - Hook (useeffect, usememo gibi) ile değişim takibi yapmak lazım diye düşünüyorum.

    Şu anki örnekte çok verimli şekilde kullanamamışsın gibi görünüyor.

    Sonuçta home componentinde time'ı tanımlıyorsun ama home re-render olmadıkça o değişken değişmez.  Re-render olması için de tetikleyen bir şey olması gerekiyor.

     

    antichrist tarafından 26/Mar/23 22:03 tarihinde düzenlenmiştir

    ~
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Cosmic
    Cosmic's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    biri bunu yazdı
    Cosmic bunu yazdı

    panel sayfanın kodunu paylaşabilir misin?

    Birebir örneği linkte;

    https://codesandbox.io/p/sandbox/cevztd 

    orada sınıfın içine koyduğun kod sınıf load olduğunda tek sefer çalışır. Sayfa componenti tek sefer init olur. O tip değişiklikleri useEffect içinde state e setleyip yapman gerekir.


    Bittik biz bittik
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek
    Cosmic bunu yazdı
    biri bunu yazdı
    Cosmic bunu yazdı

    panel sayfanın kodunu paylaşabilir misin?

    Birebir örneği linkte;

    https://codesandbox.io/p/sandbox/cevztd 

    orada sınıfın içine koyduğun kod sınıf load olduğunda tek sefer çalışır. Sayfa componenti tek sefer init olur. O tip değişiklikleri useEffect içinde state e setleyip yapman gerekir.

    useEffect clientta çalışıyor. Serverdan veri almam lazım benim. Normal şartlarda SSR için o sayfa her cagirildiginda gelmesi geliyor verinin. 


    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Cosmic
    Cosmic's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    getServerSideProps un içinde setleyeceksin o zaman


    Bittik biz bittik
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek
    Cosmic bunu yazdı

    getServerSideProps un içinde setleyeceksin o zaman

    Next.js 13'te getServerSideProps yok. :)

    https://beta.nextjs.org/docs/data-fetching/fundamentals 


    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
Toplam Hit: 2605 Toplam Mesaj: 14
nextjs13 nextjs