GridJs te tembel yükleme nasıl yapılır

tembel yükleme hakkında

Birden fazla çalışma sayfası içeren bir elektronik tablo dosyasıyla ilgilenirken, yükleme sürecini optimize etmek için başlangıçta yalnızca etkin olan çalışma sayfasını yükleyebiliriz.

Bu strateji, başlangıçta sunucu tarafı JSON yanıtının yalnızca etkin seçilen çalışma sayfasına ait verileri içermesini sağlar.

Sonuç olarak, ilk web trafiği önemli ölçüde azalır ve yükleme süresi en aza indirilerek kullanıcı deneyimi geliştirilir.

Ayrıca, GridJs kullanıcı etkileşimlerine dinamik olarak yanıt vermek üzere tasarlanmıştır. Özellikle, bir kullanıcı farklı bir çalışma sayfasına tıkladığında,

GridJs, bu çalışma sayfası için verileri almak amacıyla sunucuya istekte bulunmayı akıllıca tetikler.

Bu isteğe bağlı yükleme mekanizması, gereksiz veri transferlerini daha da azaltır ve kullanıcının şu anda üzerinde çalıştığı çalışma sayfası için her zaman en güncel bilgilere erişimini sağlar.

Bu yaklaşımı benimseyerek, yalnızca başlangıç yükleme süresini optimize etmekle kalmaz, aynı zamanda elektronik tablo dosyasındaki çalışma sayfası sayısı arttıkça iyi ölçeklenebilen duyarlı ve verimli bir uygulama da sürdürebiliriz.

GridJs’te tembel yükleme uygulamak için adımlar

Tembel yükleme için yapılandırma seçeneği ayarla.

örneğin:

       Config.set_lazy_loading(True)

Tembel yükleme için işlem URL’sini ayarla.

örneğin:

 const lazyLoadingUrl = "/GridJs2/LazyLoading";
 xs.setLazyLoadingUrl(lazyLoadingUrl);

Kullanıcı başka bir çalışma sayfasına tıkladığında, aktif olmayan araştırma sayfası ��ta mı? sorgusu otomatik olarak elektronik tablo uygulaması tarafından tetiklenir.

Sunucu tarafında Kontrolörde tembel yükleme işlemini uygula.

örneğin:

@app.route('/GridJs2/LazyLoading', methods=['POST'])
def lazy_loading():
    sheet_name = request.form.get('name', '')
    uid = request.form.get('uid', '')
    if not sheet_name:
        return jsonify({'error': 'sheet_name is required'}), 400
    if not uid:
        return jsonify({'error': 'uid is required'}), 400

    wbj = GridJsWorkbook()
    try:

        output = io.BytesIO()
        with gzip.GzipFile(fileobj=output, mode='wb', compresslevel=9) as gzip_stream:
             wbj.lazy_loading_stream(gzip_stream,uid, sheet_name)


        response = Response(output.getvalue(), mimetype='application/json')
        response.headers['Content-Encoding'] = 'gzip'

        return response
    except Exception as e:
        return Response(str(e), status=500)