0

他のプラットフォームでこれを行うためのいくつかの手法を見てきましたが、これを行うためのクリーンな方法があるかどうか疑問に思っています。

私のアプリには単一のホスト HTML ファイルがあり、標準の MVP/Places/Activities を使用してハッシュ フラグメントを解析します。さまざまな要素のさまざまな同様のボタンが表示されます。FB (lint ツールを使用して確認) はホスト ページの静的 HTML のみを読み取るため、リクエスターに返される前にそれを操作する必要があります (この問題で GWT をいじっても意味がありません)。

Guice-y com.google.inject.servlet.ServletModule を使用するので、次のようなものを作成できます。

serve("/fb/*").with(MetaTagAdder.class);

また、いいねボタンの URL には /fb/* を使用できます。そのため、ホスティング ページの HTML を吐き出します (必要に応じて動的なメタ タグを追加します)。次に、*.nocache.js ファイルが EntryPoint.OnModuleLoad() にジャンプします。

これはちょっと不格好に思えます。もっと良いアイデアがある人はいますか?

4

1 に答える 1

0

だから私はこの方法で行きましたが、うまくいきました。doPost/doGet メソッドがホスト html を書き出し、パラメーターを渡すサーブレットを作成します。したがって、URL は次のようになります。

http://example.com/fb/mypage.html?foo=baz#place:foo=baz

次に、メタ タグなどを作成するために使用できるパラメータを取得します。

// the first chunk of the static html
resp.getWriter().println("<html><head><script type=\"text/javascript\" language=\"javascript\" src=\"/myMoodule/myModule.nocache.js\"></script>");

// the dynamic meta tags
resp.getWriter().println("<meta property=\"og:title\" content=\"" + req.getParameter("foo") + "\" />");

// the rest of the static html
resp.getWriter().println("</head><body></body></html>");

次に、fb のような div に data-href 属性を設定するときに、上記の URL を使用します。SEO対策にも。本番システムに関する考慮事項:

  • サイト内のナビゲーション要素は、ユーザーを直接ホストされたバージョンに戻す必要があります。これは注意が必要です。ハッシュ フラグメントがユーザーに反応するように進化している間、HTTP 要求のクエリ文字列は静的なままであることを理解してください。
  • パラメーターの範囲が限られており、パラメーターで処理を行う場合は、HttpServlet で memcache を使用して、クライアントに返される html の半静的コピーをキャッシュします。
  • あなたのSEOで派手になろうとして、体に何かを入れてはいけません. 心痛はその方向にあります。

私はまだこれを調整して遊んでいますが、現時点ではドロップデッドショーストッパーは見られません.

于 2013-08-26T00:45:49.530 に答える