前回のUIで発生した問題をレビュー
2269 ワード
前のプロジェクトから2ヶ月が経ちましたが、プロジェクトのUIには参加しません.ただ、問題が発生したとき、私は火を助けに行きました.
今、出会った奇抜な問題を振り返ってみましょう.
私たちのUIはIE 8以上、Firefox、chromeの具体的なバージョンをサポートするのは忘れましたが、どうせ少なくともHTML 5のバージョンをサポートするのでしょう.
1.IE 11下ページは変更しない
追跡した後、要求さえ出していないことに気づいたのに、まさか.私たちがリクエストしたのはAjaxなのでajaxから手に入れてもいいかどうか考えています.お客様に何かを変えるのはいつもよくないからです.
最后にAjaxがIE 11の下でキャッシュしたことを発见して、要求して、1つの使うことができる方法はすべての要求の后ろに1つの唯一のIDをプラスして、IEをだまして毎回データのURLを要求するのはすべて新しいので、しかし日、私达はそんなに多くの地方はすべて要求を出して、すべて1回変更して、プロジェクトも基本的に安定して、あまりにも伤つけて、それからajaxがすでにこの方面の设置があることを発见しました.
2.FireFox debugが開くと、not-well-formedというメッセージが表示されます.
最初に思いついたのはjsonフォーマットの問題で、私達はchromeとIEでこのヒントが現れていないで、彼らがjsonデータの検証に対してfirefoxが厳格ではないと思って、だから返したデータをIDEの中でformatに貼ってから一つ一つ見て、何の問題も発見していないで、そこで考えることができる時firefoxはどんな設定がこれらの間違いが現れないことができて、最後にfirefoxには戻りヘッダとデータを比較する習慣があることが分かったので、jspにcontent type=「アプリケーション/json」を設定してこの問題を回避できるということを見つけましたが、JSPファイルがたくさんあり、以前はそんなに多くの項目を見たことがありますが、ページ設定のようなコードを見ることはめったにありません.そこでもっと簡単な方法があるかどうかを見続け、それから見つけました.
servletのfilterで処理しますが、以下はdoFilterの最も簡単な方法です.
3.プロジェクトで複数の異なるJqueryバージョンを使用する方法.
プロジェクトが複雑になるにつれて、さまざまなパッケージの参照も多くなり、複数のJqueryバージョンを使用する問題に直面しました.
幸いJqueryはすでにこの方面の問題を考慮している.var $jq = $.noConflict(true);解決策です
プロジェクトコードが多すぎます.次の例はネット上から来ています.
今、出会った奇抜な問題を振り返ってみましょう.
私たちのUIはIE 8以上、Firefox、chromeの具体的なバージョンをサポートするのは忘れましたが、どうせ少なくともHTML 5のバージョンをサポートするのでしょう.
1.IE 11下ページは変更しない
追跡した後、要求さえ出していないことに気づいたのに、まさか.私たちがリクエストしたのはAjaxなのでajaxから手に入れてもいいかどうか考えています.お客様に何かを変えるのはいつもよくないからです.
最后にAjaxがIE 11の下でキャッシュしたことを発见して、要求して、1つの使うことができる方法はすべての要求の后ろに1つの唯一のIDをプラスして、IEをだまして毎回データのURLを要求するのはすべて新しいので、しかし日、私达はそんなに多くの地方はすべて要求を出して、すべて1回変更して、プロジェクトも基本的に安定して、あまりにも伤つけて、それからajaxがすでにこの方面の设置があることを発见しました.
$.ajax({
cache: false,
//other options...
});
2.FireFox debugが開くと、not-well-formedというメッセージが表示されます.
最初に思いついたのはjsonフォーマットの問題で、私達はchromeとIEでこのヒントが現れていないで、彼らがjsonデータの検証に対してfirefoxが厳格ではないと思って、だから返したデータをIDEの中でformatに貼ってから一つ一つ見て、何の問題も発見していないで、そこで考えることができる時firefoxはどんな設定がこれらの間違いが現れないことができて、最後にfirefoxには戻りヘッダとデータを比較する習慣があることが分かったので、jspにcontent type=「アプリケーション/json」を設定してこの問題を回避できるということを見つけましたが、JSPファイルがたくさんあり、以前はそんなに多くの項目を見たことがありますが、ページ設定のようなコードを見ることはめったにありません.そこでもっと簡単な方法があるかどうかを見続け、それから見つけました.
servletのfilterで処理しますが、以下はdoFilterの最も簡単な方法です.
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
//Add this to avoid firefox's giving error "not-well formed"
res.setContentType("application/json");
chain.doFilter(req, res);
}
3.プロジェクトで複数の異なるJqueryバージョンを使用する方法.
プロジェクトが複雑になるにつれて、さまざまなパッケージの参照も多くなり、複数のJqueryバージョンを使用する問題に直面しました.
幸いJqueryはすでにこの方面の問題を考慮している.var $jq = $.noConflict(true);解決策です
プロジェクトコードが多すぎます.次の例はネット上から来ています.
<script src="jquery-1.5.js"></script>
<script src="jquery-1.11.js"></script>
<script>
// window.$ window.jQuery 1.11 :
console.log($().jquery); // => '1.11.0'
var $jq = jQuery.noConflict(true);
// window.$ window.jQuery 1.5 :
console.log($().jquery); // => '1.5.0'
// $jq 1.11 jQuery
</script>
<script src="myscript.js"></script>