1

現在、このコードを使用して、Webアプリケーションでランダムなテキストを取得しています。

 $(document).ready(function() {
      $("#refresh").click(function(evt) {
         $("#content").load("load.php")
         evt.preventDefault();
      })
    })

Load.phpは、データベースからランダムなテキストをロードしています。このセッションをスピードアップするために私ができることは何でもあります。誰かが3GとWiFiなしでwebbapplicationをどのように使用できるかを知っていて、考えていれば素晴らしいでしょう。

4

2 に答える 2

0

PHPコードにキャッシュ関数を追加できます。

ランダムなテキストをロードするときは、それを/cache/mytext.cache書き込み、UNIXタイムスタンプを書き込みます/cache/mytext.info

ここで、phpスクリプトに加えて、/cache/mytext.info古すぎるかどうかを読んで確認します。古すぎる場合は、新しいテキストを生成してmytext.infoのタイムスタンプを更新します。そうでない場合は、/ cache/mytext.cacheのコンテンツをテキストとして読み込みます。

// Fetch the timestamp saved in /cache/mytext.info
$cachedate = file_get_contents('./cache/mytext.info', true);

// If timestamp + _× seconds_ is < of current time  
if(($cachedate + 3600) < time()) {

    // Fetch your new random text and store into $mytext
    // for example: $mytext = getrandomtext();

    // Write into /cache/mytext.cache your new random text
    $fp = fopen('./cache/mytext.cache', 'w');
    fwrite($fp, $mytext);
    fclose($fp);

    // Update timestamp written into /cache/mytext.info
    $fp = fopen('./cache/mytext.info', 'w');
    fwrite($fp, time());
    fclose($fp);

}

// Your random text is into $mytext
$mytext = file_get_contents('./cache/mytext.cache', true);

// Print it with echo
echo $mytext;
于 2013-02-12T12:38:39.200 に答える
0

単一のリクエストをブラウザにキャッシュし、jQueryの非常に便利で、あまり使用されていないDeferreds http://api.jquery.com/category/deferred-object/を使用します。これは、ajax呼び出しがインスタンスであり、取得するだけであることを確認します。コンテンツが到着するとロードされます

$(document).ready(function() {
  var nextContent = $.get('/load.php');//preload the result of the first random text request
  var clicked = false;

  $("#refresh").click(function(evt) {
     if (!clicked) { // prevent sending loads of requests if user reclicks impatiently
        clicked = true;

        nextContent.done(function (response) { 
          console.log('yay')
          $("#content").html(response); // print the text
          clicked = false;
          nextContent = $.get('/load.php'); //preload the next request
        })
     }
     evt.preventDefault();
  });
})
于 2013-02-12T13:00:23.630 に答える