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
}
});
}
}Related
- 2026-04-16-responsive-ajax-partial-pattern — AJAX partial rendering pattern