Javascriptが有効になっているユーザーのみをサポート

asp.net c# javascript

JavaScriptが有効になっているユーザーのみをサポートするWebサイトを作成することを検討しています。

その理由としては、かなり限られた時間でリッチなユーザーエクスペリエンスを提供したいということです。したがって、JSが有効なユーザーのみをサポートすれば、UIがJSなしで機能することを確認して作成する必要はありません検証などのためのサーバー側の同等物

  1. これは可能ですか? ブラウザやプラットフォームが異なると、これを実現できませんか?

  2. 最近、JSを無効にしているユーザーの割合は何パーセントですか。

  3. JSがC#で有効になっているかどうかを確認するにはどうすればよいでしょうか。

  8  2


ベストアンサー

あなたの正当化は大丈夫です。 ただし、JavaScriptを無効にするだけでコードを悪用することは非常に簡単になるため、サーバー側で検証を実装する必要があります。

いいえ、JavaScriptなしでデータを送信することを「不可能」にしても解決しません。

個人的な経験から、私はほとんどのインターネットユーザーが最近JSを有効にしていると思います。 JSを多用するサイトで問題を抱えている可能性のあるユーザーの部分はモバイルベースのユーザーです。そのため、連絡が必要な場合を除いて、おそらくそれほど大きな問題ではないはずです。

1回のリダイレクトでJSを判断する最も簡単な方法は、JavaScriptコード(document.cookie)を使用してCookieを設定してから、前述のwindow.locationを使用してリダイレクトすることです。 その後、サーバーはJSによって設定されたcookieを読み取ることができるはずです。

また、C#のような技術を使用して検証ルールやその他のロジックをサーバーとクライアントの両方で自動的に共有することは非常に困難ですが、Aptana Jaxerをチェックアウトすることをお勧めします。 JaxerはJavaScriptベースのサーバーサイドフレームワークで、とりわけ、クライアントとサーバーの両方でまったく同じJavaScriptコードを共有することができます。 クライアントで検証したいが、検証規則を2回書きたくない場合は、とても良いです。

20


見る:

検証に関しては、*常に*サーバーサイドの検証を行い、*クライアントサイドの検証には依存しないでください。 あなたは他の方法でハッキングされることを求めているだけです。

あなたが豊かなユーザーエクスペリエンスをしている、そして/またはあなたがそのような小さなパーセンテージを満たすためにあなたのウェブサイトの2つ(またはそれ以上)のバージョンをする時間がないなら、私たちはそれが通常許容できる時間に達したと思います。

しかし状況によって異なります。 特定のサイトでは、Javascriptなどが過度に無効になっている用途をターゲットにしている場合があります。

6


あなたは2、3のブラウザシナリオを見逃しています:

  • 多くの人々がNoScriptやそれに類似したシステムを使っていますが、そこではjavascriptが最初は無効になっています。 これらの人々のほとんどは彼らがそれを必要とするときにそれをオンにするので、これはあなたにとって本当に問題ではないかもしれません。

  • * Googlebot *はJavaScriptを知りません。 Googleが適切にインデックスを作成するには、JavaScriptを使用せずに十分な内容を確認する必要があります。

4


最近では、JSを使用しないのは通常、唯一の人です。

  • 視覚障害者、そしてスクリーンリーダーを使う(通常、JSの効果はすべて失われます)

  • セキュリティを意識した(または偏執的な?)、NoScriptを無効にして閲覧する

  • ブラウザが制限されているモバイルユーザー

ASP.NETやその他のHTMLサイトでは、次のように使用します。

window.location = "/ hasJs.aspx";

これはJavaScriptユーザーのためのページにそれらをリダイレクトするでしょう、それはあなたがあなたのマスターページでチェックすることができるクッキーか何かを設定するかもしれません。 こんな感じ(または似ている):

(hasJs.aspx):

保護されたvoid Page_Load(オブジェクト送信者、オブジェクトe){Response.Cookies.Add(new HttpCookie( "hasJs"、 "yes")); Response.Redirect( "/ Default.aspx"); }

(Site.master):

<%if(! Request.Cookies.Contains( "hasJs")){%> window.location = "/ hasJs.aspx";このサイトはJavaScriptを必要とします。 <%}%>

2


それはもちろん可能ですし、クライアント(あなたが持っているなら)がそれに同意しても大丈夫です。 しかし、それでもサーバー側で検証を行う必要があります。 さもなければ(たとえそれが会社で使われるであろうとしても)いくつかのスクリプトキッドはあなたのスクリプトを壊して多分あなたが起こりたくなかったことさえするでしょう。

JSが有効になっているかどうかを確認するには、JSに確認します。

0


これをあなたの計画に対する批判として受け取らないでください。 Javascriptを必要とするという選択は確かにあなたがすることです – 他の人が述べたようにあなたはアクセシビリティ問題について心配する必要があるかもしれませんが。 ただし、WebFormではなくASP.NET MVCを使用して、Javascriptに対応していないWebサイトを開発する方が簡単なことがあります。

新しいAjaxHelper拡張機能は、ほとんどの人にとってAJAXに依存するコードを含めることをほとんど簡単にしますが、クライアントにJavascriptがなくても動作します。 タブやメニュー、ポップアップなどにjQueryプラグインを使用している場合は、そうではない人にとっては明らかに経験が低下しますが、それでも使用可能です。 フレームワークは、リクエストがAJAXリクエストであるかどうかを判断するための非常に簡単なメカニズムをサーバー側に提供するので、必要に応じて新しいViewをレンダリングするかJSON / HTML / XMLを返信することで適切に応答できます。

WebフォームよりもMVCを使用してアクセス可能なWebサイトを作成する方がはるかに簡単であることがわかりました。

0


タイトルとURLをコピーしました