0

知られているように、Internet Explorer(少なくとも<= 8)は、いくつかのjavascript配列関数(、、など)をサポートしていませindexOffilterこのstackoverflowの回答は、これらの欠落している配列関数のほとんどの適切な実装を提供します。

私の質問:あなたのウェブサイトの答えにあるような実装を提供するのが望ましいですか、それとも単に外部ライブラリ(jQueryなど)に依存するのですか?

ベストプラクティスはありますか?このような状況で私よりも実践的な経験を持っている人たちからの洞察を探しています。

外部ライブラリへの依存がないことは常にプラスです(ただし、ほとんどの場合、それらは大部分が遍在しています)。ただし、カスタム実装がすべてのエッジケースをカバーするという保証はなく、維持するものが導入されます。

4

2 に答える 2

1

ベストプラクティスは、おそらくes5-shimを使用することです。これにより、すべてのブラウザーでJavaScriptを完全にECMAScript 5と互換性があるかのように使用できます(いくつかの制限があります。たとえば、の2番目のパラメーターはObject.createエミュレートできません)。

これには、そのような拡張機能がないブラウザーでのみ機能するという大きな利点があるため、最新のブラウザーは、組み込みの最適化されたバージョンのコードを使用します。

また、独自の仕様を定義する外部ライブラリを利用することも避けます。これは、jQueryの場合$.each、仕様の内容からパラメーターを逆にしArray.prototype.forEachたり、機能のような奇妙な命名規則のよう$.proxyに壊れたりFunction.prototype.bindします。

于 2012-06-15T20:19:25.133 に答える
0

他の人が答えるのは難しいことですが、私が好むことは次のとおりです。

それがほんの一握りの関数であるなら、私はおそらくそれらを自分で実装するでしょう。ただし、あなたが言うように、すべてのエッジケースを(少なくともすぐには)考慮することができない場合があり、維持する必要のあるものをさらに追加します。人気のあるライブラリ(Underscore.jsなど)これはあなたの場合に役立ちます)多くの人々によって(通常)作成および保守されており、彼らの主な焦点はそのライブラリの機能とパフォーマンスです。そのため、問題を見つけて修正できる可能性がはるかに高くなります。また、プロジェクトが進行するにつれて、ライブラリが実行できることがますます増える可能性があります。彼らが考え、考慮に入れているクロスブラウザの問題がある可能性は十分にあります。それは、テストのはるか先まで気付かなかったでしょう。さらに悪いことに、顧客から苦情が寄せられました。

人気のある図書館を知ることは、将来のプロジェクトでもリアルタイムの節約になる可能性があります。また、あなたや雇用主/クライアントの両方にとって、優れたライブラリに自信を持つことの利点もあります。

とはいえ、これはトレードオフです。ほとんどのライブラリには、最終的に使用するよりも多くの機能が含まれているため、無駄なスペースがあり、必要以上に多くの帯域幅とメモリが消費されます。帯域幅の問題は、ほとんどの場合、適切なキャッシュによって解決されます。

また、そこにはたくさんの素晴らしいライブラリがありますが、ほとんど何でもかまいません。バナナを使ってライブラリを使いすぎると、数百キロバイト以上のJavascriptを簡単に含める必要があります。

要約すると、ユーティリティ関数の作成と保守を無料でやりたい人にアウトソーシングし、エンドユーザーにとってより直接的に価値を生み出すことに時間とエネルギーを費やしたいと思います。

于 2012-06-15T20:36:37.763 に答える