バグ報告 > フロント機能 > 商品一覧 |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
seasoft |
投稿日時: 2009/7/28 17:39
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 商品一覧 過負荷が深刻な環境などでは、パラメータ無しを蹴るといった対応も必要かもしれませんね。
先日 ramrun 様のチェンジセットをざっと見た印象ですが、リファクタリングが進み、拡張ページクラスでのチェックルーチンの追加も実装しやすくなった印象がありました。必要なサイトでは、個別対応ということでも良いのかなと感じています。
|
AMUAMU |
投稿日時: 2009/7/28 15:23
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 商品一覧 自分の場合、全リストの意味合いって、お店は可能な限り間口を広く構えるのが大事って感覚ぐらいですねー
実際の所、今のEC-CUBEのSQLクエリは全リストもカテゴリ絞り込みリストも負荷としての差はそこまでないとは思っています。どっちも重いわけで・・・ 、でも検索エンジンのクロール負荷は無視出来ないレベルなのは確かですねー (標準のクエリだと、カテゴリの絞り込みのステージに入る前のcostが大きかったはず、再確認してませんけど) .htaccessの感覚は分かりやすいですね やっぱり、このような設定選択肢を設けるべきなのかなーと・・・ 重い環境の人はdenyベースにしたほうがいいよと言えるのは分かりやすい
|
ramrun |
投稿日時: 2009/7/28 13:24
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: 商品一覧 私の感覚では、たとえるなら.htaccessとかで
すべてを禁止してから一部を許可するか
すべてを許可してから一部を禁止する
みたいに感じています。 list.phpでNOT_FOUND、条件ありで全リストはorder deny,allow list.phpで全リスト、条件ありで絞込みはorder allow,deny そこに ・全リストは負荷がかかる処理であること ・ユーザインターフェースとして全リストにアクセスする手段は本来、検索しか用意されていないこと ・list.phpへのアクセスで条件部分が入力間違いにせよ悪意が有る、無しにかかわらず全リストがデフォであること(負荷が増える) ・全リストに対して検索エンジンのクロールが入りやすくなること(負荷が増える) などなので、使い勝手を良くしよう、という考えではないのですよね。 |
seasoft |
投稿日時: 2009/7/28 12:17
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 商品一覧 引用:
検索ブロックの流用では無い場合の想定でした。 新たなブロックや直リンクなど。 引用:
複製コンテンツに該当するかは把握できていませんが、 全リストは運用で明示的に使ったことは無いですね。 もしも、チェックを行うなら、category_id も name も指定されなかった場合に、「どれか入力して」といった旨の表示を行うというロジックが好みかも。(全リストが不要という想定での話しですが。)
|
ramrun |
投稿日時: 2009/7/28 12:05
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: 商品一覧 list.php(パラメータ無し)で全リストにしました。
・チェンジセット 18239 引用: list.php?product_code=xxx みたいに、商品コードのみでの検索をするようなカスタマイズも想定されるかなと思います。その場合に、name は不要なのに、category_id は常に必要となると、ちょっと面倒かなと思いました。 検索ブロックのカテゴリ選択セレクトボックスをあえて削るようなことをしなければ勝手に付くので、面倒ということはないと思いますが... 他のも参考にチェックしてみましたが
のような感じでした。 といっても他のはindexで振り分けしているので比較にならないか。 個人的には複製コンテンツの件と、 全リストって、そんなにアクセスされたいものなのだろうかというのが心にあるんですけどね(汗)。 |
seasoft |
投稿日時: 2009/7/28 9:29
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 商品一覧 引用:
hoge=fuga にどのような意味を持たせるのか(または意味を持っていないと想定するか)によっても変わりそうですが、初期状態としては OK な気はします。 list.php?product_code=xxx みたいに、商品コードのみでの検索をするようなカスタマイズも想定されるかなと思います。その場合に、name は不要なのに、category_id は常に必要となると、ちょっと面倒かなと思いました。
|
ramrun |
投稿日時: 2009/7/27 21:07
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: 商品一覧 AMUAMUさん
実例は参考になります。 3〜5年程度でしたらまだまだ現役環境かもしれませんね。 実際 list.php?category_id= が list.php になると検索ではCATEGORY_NOT_FOUNDになりますから、やはりよろしくないかな。 個人的(最終的)には
という考えがあったのですが、
は前述の
を消すだけなのですぐに対応できます。 ただ、list.php(パラメータ無し)をOKとすると、
みたいなパターンも全リストOKになっちゃいますけど... ちといまは帰宅して、いつもコミットに使ってるパソコンじゃないので変更は明日以降になります(汗)。 |
seasoft |
投稿日時: 2009/7/27 19:22
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 商品一覧 引用:
これで動作が異なるのは、ちょっと気持ち悪いかも。 category_id をチェックするなら、全リストでも 0 をセットする方向が個人的には好みです。 もっと好みなのは、引用:
とりあえず、一意見として。
|
AMUAMU |
投稿日時: 2009/7/27 18:32
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 商品一覧 引用:
私が思うにRFC3875は 本来そういう意味だと思いますし、ramrunさんの解釈で間違っていないと思います。 ただ仕様文面からだけだと厳密な定義が無く違う解釈をする事も出来るっていう感じなだけで、ホント蛇足ですいません 蛇足ついでに例を・・・EC-CUBEの動作対象でも無い例ばっかりで申し訳ないですが・・・ もしかしたらPHPで補正しているかもしれないですが、一義的には外部変数はWebサーバソフトが設定してPHPに渡すって流れがあって、その上で以下の2パターンの実装をしたWebサーバの例が実際あったんです。 1.変数の空の値はhoge="" fuga=""が期待されるわけですが、hoge=(null値) fuga=(null値)としていた。確かAnHTTPD+特定OS環境で発生してたかと。PHPでさえないですが、namazuだかが誤動作していた記憶。 ※これは仕様動作的には間違っていないし今後も他の環境で起きてもおかしくない仕様の解釈差だと思っています。lighttpdでも似たような話題をちょっと前に聞いた気がしますが詳細不明。 2.list.php?hoge&fugaを list.phpとだけ返す。特定OS環境の特定のIISバージョンで起きていた記憶。 ※これは実装ミスと言われても仕方が無い内容ですけどね もうどっちも3〜5年ぐらい前の話なので、今は今で違うでしょうし、あまり気にしなくて良い蛇足話で、お手間を取らせてすいませんです・・・オフトピ気味なので終息で
|
ramrun |
投稿日時: 2009/7/27 17:34
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: 商品一覧 引用:
ほとんど同じ処理を2回通している これはたしかにそのとおりです。 判定の処理をprocess()の最初においたので、そのあとの同じような処理は消しても問題ないはずです。 ただ、私的に判定処理を入れるにあたって「判定処理を追加したから既存の判定を除去する」というのが怖かったのでそのままにしてます。 チキンハートですから... リファクタリングする機会があれば... ですね。 引用: 「list.php?category_id= → 全リスト」は環境によっては「list.php?」と同値になる場合がある RFC3875#Sec4.1は拝見しましたが、おっしゃることとは違うと思うのですが... AMUAMUさんの解釈ですと list.php list.php? list.php?hoge list.php?hoge&fuga は同じである(同じになってしまう環境もある)ということですよね? 私が思うにRFC3875は 環境変数のHTTP_REFERERとか、値がないのであればHTTP_REFERERは省略(設定しなくてもよい)というような意味合いで、 list.php?hoge&fugaは省略してlist.phpでもよいということではないと思うのですが... wikipediaには http://ja.wikipedia.org/wiki/Common_Gateway_Interface 引用: QUERY_STRINGに文字'='が含まれない場合は、サーバはQUERY_STRINGの内容をコマンドライン引数としてCGIプログラムに渡す。これはHTMLのISINDEX要素を用いて送信された情報を扱うのに便利である。 とあります。 コマンドライン引数とは 引用: http://...../cgi-bin/xxx.cgi?hoge+fuga という形なので、これはたしかにまずいですね。 xrea(PHPのCGI版)で上記を確認したところ、
として受け取っていました。 検索ブロックで
は category_id= になるので = があり、上記にも該当しないと思われるのですが、いかがでしょうか。 |
(1) 2 3 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |