Daha çox

Cartodb daha uzun istəklərdə IE8-10-da qat yükləmir

Cartodb daha uzun istəklərdə IE8-10-da qat yükləmir


Demoya buradan baxın: http://unirazz.com/cartodb/cartodb1.html Xəritə yükləndikdən sonra cartodb təbəqələrini yükləmək üçün GO düyməsini basın. IE8-10 istisna olmaqla son brauzerlərdə işləyir. İstəyin uzunluğunu azaltsam, yaxşı yüklənir, əks halda uğursuz oldu. Sənədlərə görə, GET-in uzunluğu böyükdürsə, cartodb avtomatik olaraq POST sorğusu göndərir. IE8-10 vəziyyətində, istəyin ölçüsü nə olursa olsun, daima GET tələbini istifadə edir.

Ayrıca, IE8-10-da olduğu kimi, CORS-un məhdud dəstəyinin olduğunu və bunun da təbəqələrin düzgün yüklənməməsinə səbəb ola biləcəyini gördüm.

Necə düzəldə bilər?

Kod sadədir, sadəcə bu kimi təbəqələri yükləyin

layer.getSubLayer (0) .setSQL ("SEÇİM * FROM cartodb2 burada zcta5ce10 in ('" + blueZips.join ("', '") + "')"); layer.getSubLayer (1) .setSQL ("SEÇİM * FROM cartodb2 burada zcta5ce10 in ('" + redZips.join ("', '") + "')"); layer.getSubLayer (2) .setSQL ("SEÇİM * FROM cartodb2 burada zcta5ce10 in ('" + greenZips.join ("', '") + "')");

Buna, brauzerlər tərəfindən məhdudlaşdırılan sorğunun uzunluğu səbəbindən bilinən bir problem səbəb ola bilər. Bu problemin qarşısını almaq üçün bunları edə bilərsiniz:

  • CartoCSS kodunu və ya poçt kodlarında süzülmüş element sayını azaltmağa çalışın.
  • Alt təbəqələr əvəzinə bir neçə təbəqədən istifadə etməyə çalışın: bu şəkildə qat qrupunun istəyi daha qısa olacaq

Düşünürəm ki, bu son yanaşma ən yaxşısı ola bilər, çünki bəlkə də poçt kodlarını azaltmaq, sorğunu azaltmağa imkan verəcək bütün ümumi bir hissəsi olmadığı müddətdə mümkün deyil:

SEÇİN * tablename ÜZƏRİNDƏ poçt kodu = '112%'

əvəzinə:

SEÇİN * tablename-dən harada poçt kodunu seçin ('11201', '11202', '11203',…)