2016-07-30 25 views
2

mapboxとleaflet.jsを使用してマップベースのWebアプリケーションを構築しようとしています。Internet ExplorerのLeaflet.jsのパフォーマンスが悪い

geoJSONファイルからfeatureLayerに約300個のマーカーをロードしています。これは、インターネットエクスプローラを除くすべてのブラウザでうまく機能しているようですが、featureLayer.setFilterを使用してマーカーが読み込まれるたびに10秒間フリーズされます。私はこのhereのデモをアップロードしました。

IEパフォーマンス分析でロックすると、犯人が 'addDoubleTapListener'のように見えます。これは既知の問題(https://github.com/Leaflet/Leaflet/issues/4357)であると思われ、ソリューションはリーフレット0.7.5にロールバックするか、または0.7.7.1ブランチ(タッチ検出を元に戻す修正がある)を使用してロールバックすることを推奨します。私は両方を試みましたが、どちらも問題に影響を与えていないようです。リーフレット1.0.0-betaへのアップグレードも提案されていますが、現在のマップボックスと互換性がないようです...

この問題を解決するための助けがあれば幸いです。

if (L.Browser.touch && (type === 'dblclick') && this.addDoubleTapListener) { 
    this.addDoubleTapListener(obj, handler, id); 
} 

IEは現在、高速のマーカー雷をロードし、すべての機能はまだで動作しているように表示されます。

+1

私はIE(9+)に数千のマーカーをロードしましたが、この問題に気づいていませんでしたが、実際には 'setFilter'を使用していません。私は通常、マーカーをAJAX経由で徐々にチャンクに追加します。 'L.geoJson(data)'の代わりに、 'geoJsonLayer.addData()'を使って一度に複数の機能を追加すると、改善されますか?また、テストしてプロファイルできるように、サンプルコードを作成してください。 – nothingisnecessary

+0

Edgeで同じパフォーマンスの問題があります。 –

答えて

1

[OK]を私が見つけた解決策は、リーフレット-src.js 0.7.7.1から次の行を削除することでした私が試したすべてのデバイス。理想的なソリューションではありませんが、Mapboxがリーフレット1.0.0をサポートするまで、ストップギャップソリューションとして機能します。

+0

興味深い..私はiOSやアンドロイドデバイスでリーフレットを使用していますが、Windowsタッチデバイスでテストしていません。とにかくダブルタップは何ですか?ズームイン?役に立たない。 IEをテストしていたハードウェアは何ですか?多分これはなぜ私はそれを見たことがない、私はWindowsタッチデバイスを確保することができます後で試してみるだろう – nothingisnecessary

関連する問題