2016-09-07 18 views
0

私は、ajax経由で使用されるHTMLを処理するための「スペック」または「適切な」方法が何であるか疑問に思っていました。ajax HTMLブロックを適切に処理する方法

たとえば、使用している実際のページにすべてのHTMLを保存する必要がありますか?または、それをロードするために私はちょうどajaxコールを行うべきですか?

負荷が少なくてもページにロードされ続けるパフォーマンスが向上していますか?または、余分なデータをページロード時にロードしてオフセットします。

ここに私が意味するものを示すスクリーンショットがあります。ユーザーが提供する内容に応じて変更される{名前}が表示されます(もちろん限定キャラクター)。

ご意見・ご感想ありがとうございます。ありがとう!

<!-- text field --> 
    <div class="add-field-wrapper float-left"> 
     <input type="radio" value="text" name="input_type" id="rad-type-text" class="type-radio-btn"> 
     <label for="rad-type-text" class="radio-lbl" data-tooltip="Used for simple inputs such as: <b>Phone Number</b> or <b>Email Address</b>"> 
      <img src="https://placeholdit.imgix.net/~text?txtsize=16&txt=70x70&w=70&h=70" class="field-type-icon" /> 
      <div class="field-type-text">Text Field</div> 
     </label> 
    </div> 

    <!-- select --> 
    <div class="add-field-wrapper float-left"> 
     <input type="radio" value="select" name="input_type" id="rad-type-select" class="type-radio-btn"> 
     <label for="rad-type-select" class="radio-lbl" data-tooltip="Use this option when you need to provide a list of choices for the user." > 
      <img src="https://placeholdit.imgix.net/~text?txtsize=16&txt=70x70&w=70&h=70" class="field-type-icon" /> 
      <div class="field-type-text">Select Menu</div> 
     </label> 
    </div> 

    <!-- textarea --> 
    <div class="add-field-wrapper float-left"> 
     <input type="radio" value="textarea" name="input_type" id="rad-type-textarea" class="type-radio-btn"> 
     <label for="rad-type-textarea" class="radio-lbl" data-tooltip="The textarea field will appear as a <b>WYSIWIG</b> (What you see is what you get) editor. This allows for some customization of the appearance of the input."> 
      <img src="https://placeholdit.imgix.net/~text?txtsize=16&txt=70x70&w=70&h=70" class="field-type-icon" /> 
      <div class="field-type-text">Text Area</div> 
     </label> 
    </div> 

enter image description here

編集:

<!-- Datepicker HTML block - used in JS --> 
<div id="datepicker_html" style="display: none;"> 
    <div id="{name}-block" class="datepicker-wrapper form-input-wrapper"> 
     <div class="template-drag-handle"><img src="images/design/up-down-icon.png" class="template-drag-handle-icon" alt="Drag" /></div> 
     <div class="inputs-wrapper"> 
      <div class="form-row"><input type="text" name="{name}" class="input-datepicker" placeholder="{placeholder}" id="{name}"/></div> 
     </div> 
     <?php echo $default_template_chkbox_options_html; ?> 
    </div> 
</div> 

HTMLの "作品" だ...それはJS変数にロードされる:

それらの提示のための

部分のソース

これが処理するものです。名前を追加し、プレースホルダを変更します

function addDatePickerField(){ 
    //Get the HTML 
    var datepicker_html = $('#datepicker_html').html(); 

    datepicker_html = datepicker_html.replaceAll(/{name}/g, input_name_underscores); 
    datepicker_html = datepicker_html.replaceAll('{placeholder}', input_name); 

    $('#template-fields-wrapper').append(datepicker_html); 

    wrapUpAddInput('datepicker'); 
} 

私はちょうどAJAX呼び出しを行う「外部」を格納する方が良いだろう場合は、今didntの(これらは、あなたが望む何度でも再利用することができます)htmlと私はそれを必要なときにそれを呼び出します - そのdatepickerのHTMLブロックのように、別のファイルに格納され、リンク上でDOMにロードされます。

+0

...それは、AJAX呼び出しによってHTMLを読み込むか、ハードHTMLファイルにコード化され、それを残す方が良いでしょう場合は、求めていますか?また、その{name}式は何ですか? angular.jsか何かからですか?あなたはそれをどのように使って管理しましたか? – OzzyTheGiant

+0

ほとんどのものと同様に、それは異なります。私は通常、AJAXリクエストで*データのみを返送し、それが所属するデータをjavascriptで置きますが、完全なHTMLを返すのが理にかなっていることもあります。 –

+1

**開発者用コンソールの画像を埋め込むことをお勧めするすべてのユーザー**:「ソースの表示」からのものであれ、実際のマークアップをコピーして貼り付けるのと同じくらい簡単で便利ですあなたのコンソールから。 –

答えて

0

私はそれが非常に広い一つだにもかかわらず、あなたの質問に対処しようとします。

一般的に、AJAX要求を介して動的コンテンツ(例えば、HTML)をロードすることは、常にあなたのパフォーマンスの向上を与えるものではありません、それは本当にあなたがやって達成しようとしているかによって決まります。

最初のリクエストですべてのHTMLコンテンツを常にプレロードする必要がありますか?または、ページがすでに画面にロードされた後に、ajaxでその一部をロードする必要がありますか?それはあなたのアプリケーションとニーズにのみ依存します。

私は例で説明します

私は(例えば記事)指向の主内容となり、従来のWebブラウザ(デスクトップまたはモバイル)から提供されるコンテンツサイトを、開発していますと仮定すると、その後の私の記事を読み込みますajaxを介して各ページのための良いアイデアではないかもしれませんが、非常にまれな例外はほとんどありません。他の手

私は、金持ちを持っている必要が豊富なUIを含むプロジェクトを「リアルタイム」にデータのブロックを送信し、受信する必要があるWebアプリケーションを開発していた場合と "企業ものは、実行され更新され、オンザフライで、私は自分の仕事を保存したり、操作を実行していますたびにリフレッシュし、再ロードする私のアプリケーションのページにすることなく、スムーズに表示されている "様の経験 - 私は確かにするために、AJAX要求を使用しますその作業の一部を処理する。

別の態様は、あなたのページの全体的なロード時間である:

ページ本体がロードされた後、いくつかのウェブサイトでは、AJAXを経由して自分のHTMLの一部をロードしている - これを行うことによって、彼らはの知覚ローディング時間を短縮していますページには「知覚された」とは、部分ページがほとんど瞬時に読み込まれ、ページ内のいくつかのブロックがajax経由で非同期に読み込まれているため、ユーザーには読み込み速度が速く見えるということです。

これは非常に幅広い質問で、特定のニーズに最も適しているかどうかを学び調査する方法はたくさんあります。私はあなたがここに求めているのかわからないんだけど

幸運

+0

間違いなくダイナミックなアプリケーションですが、1つのページで多くのことが起こっています。ブログのように静的ではありません。 – Imperialized

+0

この場合、ページがすでにブラウザに入っていれば、部分的にページをロードし、残りをajax経由で動的にロードすることを強く検討します。 これはサーバーに負荷をかけることになります(各画面に複数の要求があり、これに同時ユーザー数を掛けます)が、エンドユーザーの利便性を向上させます。 サーバーから要求を保存する場合は、利用可能なさまざまなキャッシュ方法(クライアント側とサーバー側の両方)を調べる必要があります。 – codelock

+0

ええ、それは私がやろうとしていることです。ありがとう – Imperialized

関連する問題