2017-08-15 10 views
0

私は、MySQLデータベースとPHP APIを使用するモバイルアプリケーションを作成しています。 MySQLデータベースが更新されると、クライアントのUIを更新する必要があります。私は、これには定期的なAJAXリクエストを使用する方法があると言われています。いくつかの調査をした後、AJAXリクエストはjqueryに関連しているようです。 PHPコードのみを使用して定期的なAJAXリクエストを作成できますか?定期的なAJAX呼び出しをPHPのみで呼び出すことができます

+1

あなたが作ることができます必要な任意のプラットフォームからのHTTP要求 – SLaks

+0

AJAXリクエストとHTTPリクエストは異なりますか? –

+0

あなたはクライアントとサーバーの違いを知っていますか? –

答えて

0

実際、AJAXは、単に非同期HTTPリクエストであるXMLHttpRequestです。

JQueryは、jquery.ajax関数を使用して、ほとんどのコーディングを処理できます。

phpを使用してajax呼び出し(または単純なHTTP要求)を行いたい場合は、PHP Cron jobsをチェックする必要があります。

cronジョブでajaxを使用する代わりに、PHP Curlを使用して、サーバー側で作業しているときにHTTP要求を実行できます。 Ajax呼び出しはクライアント側からのみ実行されます。

これらの部分を入れ替えると、あなたはどこにいても終わります。

0

AJAXは、非同期JavaScriptとXMLの略です。 XMLデータの送信に限定されるわけではありませんが、JavaScriptを使用して行われるものです。

ブラウザがページを読み込むと、URLにリクエストが送信され、そのページのコンテンツがダウンロードされ、埋め込まれたコンテンツ(画像、JS、CSSコンテンツなど)がページに追加されます。すべてのコンテンツが制限されると、ドキュメントは終了し、ブラウザのステップによってコンテンツがロードされます。

AJAXは、ページのロードが完了した後でサーバーを呼び出すためのメカニズムです。受信したデータを使用して、サーバーにデータを送信し、サーバーからデータを要求し、ページの内容を(リロードせずに)操作することができます。

具体的な質問については、setInterval()関数をループして定期的にサーバーサイドスクリプト(PHPでもよい)を呼び出し、更新されたデータを返す関数をループしたいとします。受け取った更新されたコンテンツに基づいてページを変更するためにクライアント側でJavaScriptを使用します。

+0

時間間隔に基づいて要求を送信するのではなく、データベースが更新されたときに要求を送信する方法はありますか? –

+0

AJAXではありません。 AJAXはクライアントから開始されるため、クライアントがクライアントにデータを要求したときにのみ、クライアントにデータを送信することができます。 AJAXの代わりに、あなたが望むものはWebSocketsです。こうすることで、アプリが読み込まれたときにサーバーとの永続的な接続が維持され、クライアントは定期的にクライアントに問い合わせる必要がなく、クライアントの更新を突き放すことができます。 –

+0

WebSocketを迅速かつiOSでどのように使用するか考えていますか?あなたがどのように知っていれば、正しい方向に私を向けることができますか? –

0

あなたの質問やコメントからわかるように、Swiftで書かれたモバイルクライアントを持っています(私はそれがiOSアプリケーションだと仮定していますか?)、そしてPHPで動作するサーバーです。前述のように、いいえ、PHPコードからクライアントを更新することはできません。クライアントとサーバーの間で何らかの通信が必要です。主に3つの選択肢があります:

  1. ポーリングを使用します。これには、クライアントからのHTTP要求を時々(例えば、1分ごとに、または2分ごとに)要求することが含まれます。このようにして、クライアントアプリケーションは何か変更があった場合、サーバーに常に尋ねられます。変更があれば、UIを更新します。欠点は、データベースが変更されたときに、次のHTTPコールまでUIが更新されないため、5分ごとに呼び出しを行うと、クライアントは最大5分間待機する必要があることです更新しました。また、通話時間を短くすると、トラフィック(多くの場合、データ料金を発生させる可能性のあるモバイルクライアントでは望ましくない)が多く発生し、無駄なリクエストでサーバーが過負荷になる可能性があります。
  2. 長いポーリングを使用します。これはポーリングを行う「スマートな」方法です。変更が行われるとすぐにインターフェイスを更新すると同時に、サーバーへの呼び出しを減らすことができます。スタックオーバーフローに関する長いポーリングに関する多くの質問があります。
  3. プッシュ通知を使用します。これにより、アプリケーションが実行されていなくても、ユーザーの電話に直接通知を送信できます。しかし、彼らは多くのセキュリティと設定が必要です。 iOS hereのプッシュ通知に関するチュートリアルがあります。

そしてAJAXはないスウィフトで書かれたモバイルアプリケーションで、WebページにJavaScriptから作られたサーバ要求を参照するので、いや、この場合には用語「AJAX」は、適用されません。)

関連する問題