2017-11-17 8 views
0

私はGoogle Apps ScriptにGoogle Appsからのレストランデータ(名前、住所、電話番号など)のリストを取得し、AJAXを介して自分のウェブサイトに表示します。現在、結果データはGoogle Apps Scriptから作成されたHTMLで生成されています。リストを高速に読み込む方法があれば、私は考えていました。 JSONについて考えましたが、そのことについて研究したところ、読み込み時間の違いはそれほどありませんでした。ここではシート内の行データごとにレンダリングするHTMLコードは、ある生成されたHTML対JSON、Google Apps Script

for (var i=0; i<rng.length; i++) 
    { 
    if (rng[i][0] != "") { 
     html += '<br><div class="row"> 
        <div class="col s4"> 
         <img class="circle responsive-img" src="img/logos/'+rng[i][0]+'.png" /> 
        </div> 
        <div class="col s8"> 
         <h5>'+rng[i][1]+'</h5> 
         <p><b>'+rng[i][2]+'</b></p> 
         <p>'+rng[i][3]+'</p> 
         <a class="waves-effect waves-light btn btn-sm red lighten-2" href="menu.html?id='+rng[i][0]+'">See Menu</a> 
        </div> 
       </div><hr><br>'; 
    } 
    } 

ので、データの各行のためには、HTMLコードの一部を作成し、私はjQueryのを通してそれを取得する場所私のウェブサイトで全体のHTMLを返します。 AJAX。さて、私の質問は、上記のメソッドが優れているか、私は生のデータを取得するためにJSONを使用する必要があります&は、クライアント側を介してレンダリング?

答えて

2

準備されたHTMLを送信すると、特にクライアントに低電力CPUがある場合は、サイトがより高速にレンダリングされます。しかし、HTML対JSON以上の遅れは、Google Apps Scriptの実行が遅いことが原因です。文字列の連結はすべてdoGetのすべての呼び出しで起こるべきではありません。それは時間の無駄です。スプレッドシートが編集されるたびに(triggerを使用して)データを1回処理し、スプレッドシートの別のシートまたはScript CacheにHTMLまたはJSONの出力を保存します。この方法では、doGetは文字列を取得してただちに提供する必要があります。

+0

提案していただきありがとうございます。シートは一度編集されます。私はちょうど私のアプリでできるだけ早く表示されるデータが必要です。もっと公開すれば、アプリはphonegapアプリです。私はどうしたらいいですか? –

関連する問題