jQueryの+ ThinkPHP + Ajaxのは、インスタントメッセージアラートを達成します

気まぐれは、私的な手紙、コメントやその他の情報など、独自の小規模なプロジェクトのためのリマインダーシステムをしたい速やかに引き渡すことができます。まだDaoxing浅い、少し複雑な私のためにそれらの長いオンライン投票、以来の書き込みは、以上みてください、あなた自身を記述するようにします。

私の考えは、二つのフィールドIDとメッセージタイプ組成物の受取人で構成され、データベーステーブル内の別のリマインダテーブルを構築することです

*   受付警告テーブル   * / 
CREATE  TABLE  IF  NOTは EXISTS 通知(
    ID            INT  NOT  NULL AUTO_INCREMENT PRIMARY  KEY-     主キーのインクリメント 
    MID          INT  NOT  NULL  DEFAULT  0-     ユーザーIDを 
    入力         INTを NOT  NULLに DEFAULT  0                         -   0:1のプライベートの手紙を:ポストのコメント2:販売3商品:商品のレビュー4:グループの要求は5を送ってきた:グループに参加する7新しいメンバー:旧チームメンバー出口8:イベントへの招待状6成功したチームの作成 
)ENGINE = MyISAMテーブルDEFAULTCHARSET = UTF8。

そして、Ajaxリクエストのためのフロントページに再帰関数を書きます

機能 が必要です(){
       VARの "} {U-( 'グループ/ checkNotify')" URL = ; 
          
      $に.get(URL、ヌル機能{(データ)
              
            // 取得したデータが空でない場合は、警告が表示され、
           IF($ 。TRIM(データを)= ''!){ 

               // ここに書かれた注意喚起の方法の 
            警告( '笑'の); 
           } 
      }); 

      // 3秒毎時間要求 
      のsetTimeout( '(必要)'、3000 ); 
}

現在の時刻にバックグラウンドチェックデータベースの前に3秒でデータが挿入されている場合は、そうであれば、必要な情報を返します

パブリック 関数checkNotify(){ 

    //はからモデルクラス定義をインスタンス
    $通知 = D( "通知" ); 

    // 取得し、現在のユーザID 
    $ MID = $ _SESSION [ 'メンバー'] [ 'ID' ]; 

    // Ajaxのわずか3秒で実行時間なので、時間ので、3秒間クエリ要求時間(現在の時間)より後に新しいデータを挿入するには
    $時間 = 時間() - 3 ; 

    // クエリを準備
    WHERE $ =「MIDを= MID $と作成した> $時間 " ; 

     //は、新しいデータがデータベースに存在しているかどうかを調べる
    の$ BOOL = $受け取る - > WHERE($ WHERE) - > 検索(); 
        
    //クエリ結果が空でない場合は、ゼロのデータ型パラメータの出力結果を設定し、すなわち、アラートのタイプは、その後、警告テーブルに対応するデータベースからコンテンツを取得
    //わずか3秒のメッセージの中に、このテストをデフォルトで、あなたはより正確にしたい場合は、要求時間を短縮することができる
    IF$のBOOL!= NULL ){ 

        // テストデータを           
        エコー $ BOOL [0] [ 'タイプ' ]; 
    }; 
}

もちろん、ドキュメントの負荷を作るためには、関数の実行後に完了する

<ボディのonload = "ジャバスクリプト:リターン)が(必要;">

私の考えは、二つのフィールドIDとメッセージタイプ組成物の受取人で構成され、データベーステーブル内の別のリマインダテーブルを構築することです

*   受付警告テーブル   * / 
CREATE  TABLE  IF  NOTは EXISTS 通知(
    ID            INT  NOT  NULL AUTO_INCREMENT PRIMARY  KEY-     主キーのインクリメント 
    MID          INT  NOT  NULL  DEFAULT  0-     ユーザーIDを 
    入力         INTを NOT  NULLに DEFAULT  0                         -   0:1のプライベートの手紙を:ポストのコメント2:販売3商品:商品のレビュー4:グループの要求は5を送ってきた:グループに参加する7新しいメンバー:旧チームメンバー出口8:イベントへの招待状6成功したチームの作成 
)ENGINE = MyISAMテーブルDEFAULTCHARSET = UTF8。

そして、Ajaxリクエストのためのフロントページに再帰関数を書きます

機能 が必要です(){
       VARの "} {U-( 'グループ/ checkNotify')" URL = ; 
          
      $に.get(URL、ヌル機能{(データ)
              
            // 取得したデータが空でない場合は、警告が表示され、
           IF($ 。TRIM(データを)= ''!){ 

               // ここに書かれた注意喚起の方法の 
            警告( '笑'の); 
           } 
      }); 

      // 3秒毎時間要求 
      のsetTimeout( '(必要)'、3000 ); 
}

現在の時刻にバックグラウンドチェックデータベースの前に3秒でデータが挿入されている場合は、そうであれば、必要な情報を返します

パブリック 関数checkNotify(){ 

    //はからモデルクラス定義をインスタンス
    $通知 = D( "通知" ); 

    // 取得し、現在のユーザID 
    $ MID = $ _SESSION [ 'メンバー'] [ 'ID' ]; 

    // Ajaxのわずか3秒で実行時間なので、時間ので、3秒間クエリ要求時間(現在の時間)より後に新しいデータを挿入するには
    $時間 = 時間() - 3 ; 

    // クエリを準備
    WHERE $ =「MIDを= MID $と作成した> $時間 " ; 

     //は、新しいデータがデータベースに存在しているかどうかを調べる
    の$ BOOL = $受け取る - > WHERE($ WHERE) - > 検索(); 
        
    //クエリ結果が空でない場合は、ゼロのデータ型パラメータの出力結果を設定し、すなわち、アラートのタイプは、その後、警告テーブルに対応するデータベースからコンテンツを取得
    //わずか3秒のメッセージの中に、このテストをデフォルトで、あなたはより正確にしたい場合は、要求時間を短縮することができる
    IF$のBOOL!= NULL ){ 

        // テストデータを           
        エコー $ BOOL [0] [ 'タイプ' ]; 
    }; 
}

もちろん、ドキュメントの負荷を作るためには、関数の実行後に完了する

<ボディのonload = "ジャバスクリプト:リターン)が(必要;">

おすすめ

転載: www.cnblogs.com/chenduzizhong/p/10985753.html
おすすめ