0

私は Web アプリケーションに不慣れで、HTML でデータを操作する最良の方法を理解しようとしています。私は Appengine (Python) を使用しており、ビューに大量のデータをロードすることができました。最も単純な形式では、映画の名前のセットであり、各名前には関連付けられた詳細 (年、評価など) があります。ムービー リンクとすべての詳細が表示される div の間でデータを渡すにはどうすればよいでしょうか。アプリケーションの一部のコントロールに jQuery を使用するので、jQuery を使用してコントロールにデータ バインディングを行う方法があるかどうか疑問に思っています。

さらに、これに関する標準は何か教えてもらえますか。つまり、このすべてのデータを 1 回の呼び出しで UI にロードすると (多くの映画タイトルではないと仮定して)、人々がこれをスクリーン スクレイピングするのが簡単になるのではないでしょうか?情報?それとも、ここで通常使用される難読化がありますか?

よくわからない場合は申し訳ありませんが、私は Web 開発のまったくの初心者です。

Update1: jQuery data() API を見つけました。これでいけそうです。コメント?

Update2: 後でいくつかのテストを行ったところ、data() が実際にデータを div 自体に表示するのではなく、要素に添付していることが判明しました。

4

1 に答える 1

1

いくつかの方法がありますが、基本的な考え方は、目に見えない方法で HTML にデータを配置し、Javascript を使用して HTML を解析し、必要なときにデータを引き出すことです。

最新のブラウザーで最も簡単な方法は、data- 属性を使用することです。これらは data- で始まる任意の属性で、残りは自分で名前を付けることができます。例えば:

<a href="/movie/1234" data-id="1234" data-title="Tsar Wars" data-actors="[Harryson Fjord, Carry Fischer]">Czar Wars</a>

この場合、ユーザーには "Tsar Wars" というリンクのみが表示されますが、JavaScript は data- 属性に簡単にアクセスして、必要なデータを取得できます。このアプローチのもう 1 つの利点は、jQuery が data() API によってアクセス可能な data- 属性を自動的に作成することです。

それを行う別の方法は、リスト内のすべてのデータ要素を含む HTML リスト要素を非表示にすることですが、これをすべて自分で解析する必要があります。

標準的な難読化はありません。サーバー側で自分自身を難読化し、JS で難読化を解除する必要があります。js で難読化アルゴリズムを理解することはそれほど難しくないので、これは時間の価値はありません。

データが本当に非公開である場合は、サーバー上ですべての処理を行うように設計する必要があります。たとえば、トークン (1234 など) のみを表示し、AJAX 呼び出しを使用してトークンをサーバーに渡すと、サーバーはデータ処理を行い、公的に安全な結果をスクリプトに返すことができます。

于 2012-05-30T19:39:40.667 に答える