質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1901閲覧

URLにhashをつけるメリット・デメリットを知りたい。

Tatsuo_Iriyama

総合スコア50

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1グッド

1クリップ

投稿2018/05/10 02:03

[前提]
開発環境
・言語:Java8
・Webコンテナ:Apache Tomcat8
・サーバー:MySQL

現在チームでショッピングサイトを製作中。

[質問]

例えば、宛先登録が完了した画面、または、商品の購入が完了した画面において、Webブラウザの戻るボタンを押されたくないという考えから、完了画面に行った際にURLの後ろにhashをつけ、さらにwebブラウザの戻るボタンを押したとしても、押したと同時にhashにhashが付く感じで、要はhashが繰り返されるので、前のページに戻れないような機能を作っていました。

疑問点として
・そもそもどんな時にURLにhashをつけるのか?
・メリット・デメリットは何なのか?

調べてもイマイチわからなかった為質問しました。
よろしくお願いします。

set0gut1👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/05/10 02:07

それぞれの場面でのURLを例示してください。
m.ts10806

2018/05/10 02:09

ちょっと思ったのがチームで作られているのですよね?そのhashがつくように作った人に聞くとか、仕様部分をチームに確認した方が早いのでは?「イマイチ分からなかった」が「それっぽい記事は見つけたけど内容が理解できなかった」のか「そもそも見つからなかった」のかでは違います。どのように探したかも含めて「調べたこと・やってみたこと」として質問本文に記載してください。
Tatsuo_Iriyama

2018/05/10 02:30

開発したい本人も全てを理解しているわけではなく、そういう機能をつけたいという考えから作ったみたいなので、自分で調べようと思い、質問をしました。やって見たことは特にありません。作った彼の機能を見て調べているだけなので。調べた事というのがよくわからないのですが、ここで私が言っている意味は、疑問点に対しての回答がググっても出てこなかったという意味です。もし疑問点に対し回答となるページまたは、検索方法を知っていれば教えて頂きたいです。
Tatsuo_Iriyama

2018/05/10 02:35

単にURLにhashを付けるというのはどういう状況、場合において付けるのか、そして、hashを付けたとしてメリット・デメリットがあれば教えて欲しいという考えなので、これも同様に回答となるようなページまたは、検索方法を知っていれば教えて頂きたいです。
m.ts10806

2018/05/10 02:43

うーんなるほど。すごーーーーーーーーくざっくりな回答しかつかないと思います。「作った人に聞け」とか「仕様理解してから作ってください」とか。hashを使うのも結局は作る側の都合でどうとでもできるので、メリットデメリットについてもほぼ作る側のさじ加減です。「こういったことをhashを使ってしたいが実現方法はあるか」ならまだ分かるのですが。
Tatsuo_Iriyama

2018/05/10 02:50

結局開発者が深掘りされても理解出来るくらいの説明ができるほどの理解がある上で開発していただけると嬉しいですがね。まぁ興味本意から実際に機能を作ったという点は関心しますがね。とにかく悩ませてしまい申し訳ありませんでした。
guest

回答1

0

ベストアンサー

・そもそもどんな時にURLにhashをつけるのか?

フラグメント識別子

一例ですがhashはこのページのココ(たとえばHTMLの要素)というのを指定したりする時に使います。

Wikipediaの記事の目次のリンクをクリックして見たらその項目に飛びますがそれはhashの項目で飛び先を指定しているからですね。(項目に飛んだ後のURLを見たらhashがついているのがわかると思います)

後はhashで画面の状態を持たせるとかでしょうか。

例えば、宛先登録が完了した画面、または、商品の購入が完了した画面において、Webブラウザの戻るボタンを押されたくないという考えから、完了画面に行った際にURLの後ろにhashをつけ、さらにwebブラウザの戻るボタンを押したとしても、押したと同時にhashにhashが付く感じで、要はhashが繰り返されるので、前のページに戻れないような機能を作っていました。

完了画面から戻るボタンを押されるのを防ぎたいのは理解できますが、
戻るボタン押すたびにURLのhashが増えるサービスは見たことがないですね。。。

やりたいことは下記の記事のことだと思うので参考になると思います。

https://terasolunaorg.github.io/guideline/5.0.2.RELEASE/ja/ArchitectureInDetail/DoubleSubmitProtection.html

さいきょうの二重サブミット対策

投稿2018/05/11 03:03

編集2018/05/11 03:07
balaenoptera

総合スコア222

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tatsuo_Iriyama

2018/05/11 13:16

hashが増えるという表現は誤解を招きました。申し訳ありません。 私が言いたかったのは、あるページなんらかの段階を踏んでアクセスしたらURLのけつにhashが付いたとします。今回でいう宛先登録完了画面とかです。 戻るというアクションに対して何も設定してなければ、もちろん戻れますし、URLにはhashが付いてないですよね。 ですが、前のページに戻るというアクションに対して、そのアクションを行った場合URLにhashがつくという設定を行うと、hashのループのような感じになり、戻るというアクションを行っても、hashが付いたページがサイド表示される感じになるので、事実上戻るというアクションは出来ないようになります。 これでなんとなくでも私が言いたかったことが伝わればと思います。 回答において提示して頂いたURLの情報はとても参考になりましたので、ベストアンサーにしました。 分かりづらい質問ながら、回答して頂きありがとうございました。 また一つ勉強になりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問