3

さて、私はしばらくの間JSマージを行ってきましたが、マージを成功させるためのロジックをまだ理解できません。最終的には、ライブラリをマージリストで上向きおよび下向きに再配置します。jquery が一番上になければならない場合もあれば、そうでない場合もあります。fancybox を addJs として追加する必要がある場合もあれば、addItem として追加する必要がある場合もあります。

では、Magento のマージ JS を使用するときに JS ライブラリが壊れる原因は何ですか? マージを成功させるためのルールはありますか?

更新: ちょうど今、私が移動した local.xml で

<action method="addItem"><type>skin_js</type><name>js/magiczoomplus.js</name></action>

<action method="addJs"><script>jquery/magiczoomplus.js</script></action>

これで、ページで発生していたmagiczoomplusエラーが解決しました。どうして?

この問題を理解しようとしているので、将来的により適切に取り組むことができます

4

5 に答える 5

7

ここで、JavaScriptライブラリと競合するものと競合しないものとのコア原則を理解する必要があります。

jQuery と Prototype が競合し、Magento の場合:

  • プロトタイプが必須である前に、ページ上の他のスクリプトの前に常にjQueryを含めてください
  • jQuery.noConflict(); を追加します。jQuery ライブラリ ファイルの末尾を直接呼び出す
  • jQuery ベースのスクリプトで $ をメソッド名として使用していないことを確認してください (ここでの競合の本質)
于 2012-06-27T13:21:09.320 に答える
2

Javascript のマージを有効にした後に問題が発生した場合、私は常に、最小化された Javascript ファイルをそれらのファイルの最小化されていないバージョンに置き換えようとしました。そして、それは常に問題を解決しました。(最小化されたファイルに問題がある理由はわかりません)

于 2012-10-30T19:43:44.480 に答える
1

私にとってうまくいったのは、プロトタイプの後にjQueryインクルードを移動し、jQuery.noConflict();を追加することでした。jQuery インクルードの後。

于 2013-02-28T22:49:19.393 に答える
1

実際にマージを修正するための多くのオプションはありませんが、

1.) grouplocal.xml ファイルで -ing を使用して、マージを改善します。

http://fishpig.co.uk/blog/why-you-shouldnt-merge-javascript-in-magento.html

2.) Magento の組み込みマージを完全に放棄し、Fooman_Speedster代わりに使用します。

http://www.magentocommerce.com/magento-connect/fooman-speedster.html

2番目のものは、これまでのところ完全に機能しています。私は jQuery ライブラリとさらに (Handlebars など) を使用していますが、まったく問題はありません。

于 2012-06-29T22:45:05.830 に答える
1

結局のところ、私にとってうまくいくのは次のとおりです。

  1. 常に jQuery を一番上に配置し、その後に noConflict を配置します
  2. 含まれている JS の圧縮バージョンと非圧縮バージョンの切り替え (gzip 圧縮を有効にしている場合、最終的なサイズについて心配する必要はありません - いずれかの方法で圧縮されます)
  3. addItem と addJs の組み込みメソッドの切り替え
  4. エラー ライブラリをランダムに再配置する
于 2013-03-01T11:06:14.387 に答える