私は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ページネーション
- 2. Codeigniter AJAX CSRF protection
- 3. JQuery Ajax POST in Codeigniter
- 4. jCanvas Layer Events
- 5. UIView-layer addAnimation:forKey:
- 6. [layer removeAllAnimations]が
- 7. Wicket:Openlayers Integration&Open Streetmaps Layer
- 8. Ajax Codeigniter可変問題
- 9. Codeigniter jquery ajaxスライダダウンアニメーションで選択
- 10. php codeigniter form validation with ajax failed
- 11. codeigniter HMVC ajax on update関数
- 12. ASP.NET、LLBLGen、Spring.Net with Service Layer
- 13. Photoshop LayerスタイルからCoreGraphicsコード
- 14. CALayersは、デリゲートのdrawLayer:inContext:[layer setNeedsDisplay]と[layer display]の後でも呼び出さない
- 15. Codeigniterのajaxアップロードで奇妙なMIMEタイプ
- 16. ajaxでcodeigniterのフォームを検証する
- 17. ajaxデータをcodeigniterコントローラーに渡す
- 18. jQuery with Codeigniter AJAX投稿の問題
- 19. codeigniterの古いコードベース2.1.4ブロックセッションとajax
- 20. codeigniter forbiddenを使用したAjaxリクエスト
- 21. ajaxを使用してCodeigniterセッション
- 22. CodeIgniter REST APIライブラリAjax PUT throwing 403 Forbidden
- 23. Ajaxは私がJS持っCodeIgniterの
- 24. codeigniter ajaxの後にURLを取得
- 25. CodeIgniterのAJAX問い合わせフォーム
- 26. CodeIgniterデータベースの結果オブジェクトをAjax
- 27. WebApi&Business Layerを使用したオートファンクション
- 28. Javascript v3 Fusion Table Layer - where句内のROWID
- 29. CodeIgniterの -
- 30. Codeigniterでパラメータajaxを取得する方法は?
ので、*すべて*あなたのサイトのAjax機能を1つの巨大なコントローラにパックされましたか?あなたのアプリケーションが成長するにつれてそれはかなり混乱するようです。どちらか、それとも、あなたはAJAXをあまり使用していません。 –
@Madmartigan私たちは再び会います。それはアプリケーションに依存します - 私は特定の状況でAJAXを使用しています。なぜなら、AJAXがWebサイト全体に対して7つ以下のAJAXコールを必要とするとしたら、それらを1つの "モノリシック" AJAXコントローラにグループ化します。 AJAXの豊富なWebアプリケーションAjaxコントローラの並列システムを設定しました。ページコントローラとAjaxコントローラの1:1の比率です – hypervisor666
ええ、私は名前/アバターを認識していると思っていました。から? –