私はajaxについて多くの研究をしてきましたが、コードギターで別のajaxレイヤーを作成する方法についてはあまり見当たりません。チュートリアルビデオを実行する人々のディレクトリツリーにajaxコントローラがありますcodeigniter上では、本当の説明を得られませんでした。私はカプセル化を促進し、javascriptを有効にしたユーザーだけに表示することを前提としています。自分のプロジェクトで使用するためにコントローラーで実装する方法についてはわかりません。CodeIgniter Ajax Layer
答えて
すべては、あなたが何をしているかによって異なります。最も簡単な方法は、私の意見では、AJAXコントローラとURLを別々にするのではなく、コントローラの要求を検出して、通常とは異なるものを出力することです。 Input classは、この機能を持っている:コントローラメソッドで
/**
* Is this an ajax request?
*
* @return bool
*/
define('AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest');
使用例:私は定数を使用することを好む
/**
* Is ajax Request?
*
* Test to see if a request contains the HTTP_X_REQUESTED_WITH header
*
* @return boolean
*/
public function is_ajax_request()
{
return ($this->server('HTTP_X_REQUESTED_WITH') === 'XMLHttpRequest');
}
$data = $this->some_model->get();
if ($this->input->is_ajax_request())
{
// AJAX request stops here
exit(json_encode($data));
}
$this->load->view('my_view', $data);
この道を、あなたはしないでください同一または類似のアプリケーションロジックが異なるコントローラを使用して分散され、コードをよりメンテナンス可能にすることができます。たとえば、標準のHTMLフォームはAJAXを使用して同じ場所に投稿でき、出力が異なるため、progressive enhancementをより簡単でクリーンにすることができます。さらに、ユーザーから「隠す」必要がある「AJAXのみ」のURLはありません。
私は過去に使用した簡単なソリューションを提供しようとします。しかし、私はCodeIgniterの習熟度/熟知度については不明ですが、これはCodeIgniterの問題に対処するために開発した独自の「自家製」ソリューションです。
私はCodeIgniterがシンプルで小さなフットプリントが好きです。しかし、私が使用していない機能のいくつかは:私はコントロールのフリークやSQLインジェクションのようなものですので、私は提供されたデータベース接続システムを使用していないので、流行している。だから私はこの理由のためにフレームワーク内で逸脱する方法を学んだ。
AJAX処理を格納する別の「レイヤー」を作成し、それをきれいに整えて実装するために、AJAX要求に応答する特定のジョブを持つ別個のコントローラーオブジェクトを作成します。このように、あなたの "Webページ"コントローラは "Ajax"コントローラとは別のものです。
class Ajax extends CI_Controller
{
function __construct(){ parent::__construct();}
function webserv(){ /* Your Web Service code here... */}
}
その後、あなたはこのURLにあなたのAJAX要求を指示します:
- 1. Codeigniter AjaxはCodeIgniterのテーブル
- 2. ログインAJAXとcodeigniter
- 3. CodeigniterのAJAXページネーション
- 4. Codeigniter AJAX CSRF protection
- 5. CodeigniterのAJAXページネーション
- 6. Codeigniter Ajax Forbidden
- 7. Codeigniter null値ajaxリクエスト
- 8. php Codeigniterとjquery ajax
- 9. JQuery Ajax POST in Codeigniter
- 10. jCanvas Layer Events
- 11. UIView-layer addAnimation:forKey:
- 12. Keras LocallyConnected1D layer
- 13. [layer removeAllAnimations]が
- 14. caffe layer loss_weight_size
- 15. jqueryの、AJAXとCodeIgniterの
- 16. ajaxとcodeigniterで 'Bad Request'
- 17. Ajax Codeigniter可変問題
- 18. codeigniter HMVC ajax on update関数
- 19. Codeigniter too many requst csrf ajax
- 20. Codeigniter AjaxリクエストURLの問題
- 21. Codeigniter PHPExcel ajax経由でダウンロード
- 22. Codeigniter 3のAjax画像アップロードエラー
- 23. Codeigniter JQuery ajaxポストnull値
- 24. 内部サーバーエラー500(codeigniter、ajax)
- 25. Codeigniter Ajaxログインフォームの検証
- 26. jqueryのAJAXは、CodeIgniterの
- 27. CodeIgniter ajaxリロードページの問題
- 28. php codeigniter form validation with ajax failed
- 29. Codeigniter jquery ajaxスライダダウンアニメーションで選択
- 30. Codeigniter ajaxフォーム検証エラー
ので、*すべて*あなたのサイトのAjax機能を1つの巨大なコントローラにパックされましたか?あなたのアプリケーションが成長するにつれてそれはかなり混乱するようです。どちらか、それとも、あなたはAJAXをあまり使用していません。 –
@Madmartigan私たちは再び会います。それはアプリケーションに依存します - 私は特定の状況でAJAXを使用しています。なぜなら、AJAXがWebサイト全体に対して7つ以下のAJAXコールを必要とするとしたら、それらを1つの "モノリシック" AJAXコントローラにグループ化します。 AJAXの豊富なWebアプリケーションAjaxコントローラの並列システムを設定しました。ページコントローラとAjaxコントローラの1:1の比率です – hypervisor666
ええ、私は名前/アバターを認識していると思っていました。から? –