1

奇妙な動作をしているコードのセグメントを試しています。

コンテンツを表示するために、JQuery masonry プラグインで Paul Irish 無限スクロールを使用しています。

コンテンツは sql によってプルされ、現在 20 のセット数があります。

これは、ページがデータベースからコンテンツの最初の 20 行をロードし、スクロール ダウン時に次の 20 行をロードすることを意味します。

この機能をいくつかのページで使用していますが、1 つのページを除いて正常に動作します。

このページでは、最新の 20 件の投稿を読み込む代わりに、その特定のフィールドのすべての投稿を読み込みます。5000 を超える投稿があるものもあるため、文字通りページがクラッシュします。ご想像のとおり、大きな問題です。

私は異常を探すためにコードを適応させようとしており、特定の 1 つのセグメントに (私が思うに) 絞り込みました。

これは、機能するページで使用されるコードです。

function index() {
    $userID = false;
    $order = false;
    $limit = $this->config->item('pin_load_limit');
    $page = $this->uri->segment(3, 1);

    $nextOffset = ($page -1) * $limit;
    $nextPage = $page +1;
    $sql = "SELECT *
                FROM
                    pins";

    if ($userID)
        $sql .= " WHERE
                    user_id= $userID ";

    if ($order) {
        $sql .= " ORDER BY
                    ' $order'";
    } else {
        $sql .= " ORDER BY time DESC";
    }
    $sql .= " LIMIT $nextOffset,$limit";

    $query = $this->db->query($sql);
    if ($query->num_rows() > 0) {
        $row = $query->result();
    } 

これは、機能しないページ上のコードです。

    function getEachBoardPins($id,$limit=false)
{
    $sql    = "SELECT 
                    *
                FROM
                    pins
                WHERE
                    board_id = $id
                ORDER BY time DESC";
    if($limit)
        $sql .=" LIMIT 0 ,$limit" ;
    $query  = $this->db->query($sql);
    return $query->result();
}

ピンの負荷制限に関係していることはわかっていますが、後者にコードを追加しようとしましたが成功しませんでした。

おそらく、それについてもっと知っている誰かが、より良い洞察を提供できるでしょうか?

4

1 に答える 1