Açıklama

Bazı durumlarda, bir web haritasında bulunan bir katmandaki veriler güncellendiğinde, söz konusu veriler web tarayıcısı yenilendiğinde veya JavaScript için ArcGIS API’da bulunan refreshInterval fonksiyonu kullanılarak otomatik yenilendiğinde döndürülmez.

Aşağıdaki kod örneği, güncellenmiş sorgu yanıtını döndürmekte başarısız olan bir sorguyu göstermektedir:

var featureLayer = new FeatureLayer(featureLayerUrl, {
            mode: FeatureLayer.MODE_ONDEMAND,
			refreshInterval: 0.25,
            visible: true,
            outFields: ["*"],
            id: "fLayer"
});

Not

Yukarıdaki kod örneği sorguyu her 0,25 dakikada veya 15 saniyede bir yeniler. refreshInterval işlevi, sorguyu belirtilen dakika(lar) sayısına göre yeniler. Daha fazla bilgi için ArcGIS API for JavaScript: Sınıf: Katman dokümanını inceleyebilirsiniz.

Sebep

Söz konusu katman yenileme aralığında güncellenen kayıtlar hizmetten döndürülmez çünkü hizmet sorgu isteklerine önbelleğe alınmış verileri döndürmektedir. Web tarayıcısında ayarlanan önbellekleme için sınırlı alan olabilir, bu da düzenlemelerin kaydedilmemesine ve dolayısıyla bir sorgudaki güncellemelerin döndürülmemesine neden olur.

Çözüm veya Geçici Çözüm

Sorgu isteğini çalıştırmadan önce esriRequest.setRequestPreCallback() fonksiyonunu uygulayın ve sorgu isteğine benzersiz bir zaman girdisi iletin. Fonksiyon, önbelleğe alınmış bir yanıt yerine yeni bir yanıt döndürür ve tarayıcıdaki önbellek sınırlamalarını yok sayar. Aşağıdaki kod parçacığı, esriRequest.setRequestPreCallback() işlevinin, yenileme aralığındaki saat ve tarihi kullanan addTimeStamp() adlı önceden ayarlanmış bir işlevden girdi aldığını gösterir. Daha fazla bilgi için  ArcGIS API for JavaScript: Fonksiyon: esri/request dokümanını inceleyebilirsiniz.

esriRequest.setRequestPreCallback(addTimeStamp);

function addTimeStamp(ioArgs) {
	if(ioArgs.url == (featureLayerUrl + "/query")) {
		ioArgs.content = ioArgs.content || {};
		ioArgs.content.timeStamp = new Date().getTime();
	}
	return ioArgs;
}

Faydalı Bağlantılar

 

Geri Bildirim