Proje: Okul Platform · Hub: Okul Platform — Incidents

Semptom

Profil sayfasında “Okulun İmkanları” (#ajax_features) iki kez render ediliyordu — feature listesi çift görünüyordu.

Root Cause

loadScripts() (sayfa yüklenince çağrılır) hem callSchoolFeatures() hem de checkSchoolFeatures()’ı çağırıyor. checkSchoolFeatures() ilk scroll’da tekrar callSchoolFeatures()’ı tetikliyor.

var isSchoolFeaturesLoaded = false;
 
function callSchoolFeatures() {
    if (!isSchoolFeaturesLoaded) {       // ← iki çağrı paralel girerse her ikisi de pass eder
        $$.ajax({
            success: function(data) {
                isSchoolFeaturesLoaded = true;   // ← geç set: ilk response gelmeden scroll'da 2. çağrı giriyor
                $$('#ajax_features').append(data)
            }
        });
    }
}

isSchoolFeaturesLoaded, success callback’te set edildiğinden, AJAX response gelmeden önce scroll tetiklenirse guard çalışmaz ve iki append olur.

Çözüm

Flag’i AJAX çağrısından önce set et, hata durumunda reset’le:

function callSchoolFeatures() {
    if (!isSchoolFeaturesLoaded) {
        isSchoolFeaturesLoaded = true;   // ← ÖNCE set et
        $$.ajax({
            success: function(data) {
                if (data) $$('#ajax_features').append(data)
            },
            error: function() {
                isSchoolFeaturesLoaded = false;  // ← hata varsa retry izni ver
            }
        });
    }
}