我正在开发一个Web服务以根据每个图块的XYZ
坐标返回TMS图块。一切正常,但对于某些磁贴,我没有数据,因此我需要返回一个空磁贴。我在想,如果传单中有任何已定义的HTTP响应状态代码,而不是返回空的磁贴,我只是返回该HTTP代码,而传单则停止呈现该磁贴。我当时正在考虑返回404,但它会记录在用户的浏览器中,并且我不需要此解决方案。
小叶处理this specific bit of code处的图块加载/错误:
var tile = document.createElement('img'); DomEvent.on(tile, 'load', Util.bind(this._tileOnLoad, this, done, tile)); DomEvent.on(tile, 'error', Util.bind(this._tileOnError, this, done, tile));
只要HTMLImageElement
instance triggers an error
event,传单将触发后备行为,并尝试将HTMLImageElement
加载到失败的图块中。
Leaflet会not关心切片为什么会失败。根据error
,这可能发生在很多情况下,包括:
errorTileUrl
或errorTileUrl
HTTP错误代码如果您正在开发切片服务器,并且不想向浏览器发送404 HTTP状态代码即使这样做在语义上是正确的,,您可以返回任何不是图像的东西。
尤其是,执行IMO时在语义上第二重要的事情是将40x
与具有50x
值的.webp
in unsupported browsers HTTP标头一起使用。
BTW请记住,all网络请求已记录在Web浏览器中,并且具有404不会损害性能或可访问性。