7

AJAXを使用してサイトナビゲーションを作成しようとしています。さまざまなビューへのリンクを含むナビゲーションメニューがあります({% url name %}テンプレートで使用)。私がやろうとしているのは、AJAXを使用してページコンテンツをロードすることです。ロードしようとしているページコンテンツは、コンテンツブロック()で囲まれています{% block content %}

このスニペットhttp://djangosnippets.org/snippets/942/も見つけましたが、すでに定義したビューを使用し、ajaxを使用してのみコンテンツを取得したいと思います。

助言がありますか?

4

2 に答える 2

7

そのようなもののために正確に構築されたdjango-pjaxを使用する必要があります。

基本テンプレートに、ページ全体を含めるblock contentか、リクエストがajaxであるかどうかに基づいて含めるだけです。

django-pjaxはjQueryを使用してAJAX呼び出しを行い、HTML5プッシュ状態APIを使用して履歴を操作します。これは非常に優れた方法であり、IEの古いバージョンでは正常に機能が低下します。

于 2011-07-01T10:23:48.983 に答える
3

のようなテンプレートタグ{% block content %}は、AJAXが物事を見るまでに長い間なくなっています。あなたがしたいことは<div>あなたのコンテンツブロックに次のような名前を作成することです:

{% block content %}
<div id="content"></div>
{% endblock content %}

次に、この(jQuery)コードのようなものを使用して<div>、必要に応じてロードできます。

$("#content").load(url, data, loadComplete);

ここurlで、はロードするURL(HTMLが返されることを期待)、dataはフォームデータ(存在する場合は省略可能)、loadCompleteはデータのロード時に呼び出されるオプションの関数であり、フォームはfunction loadComplete(responseText, textStatus, XMLHttpRequest) {...}です。jQueryを使用したくない場合でも、縮小されていないjQueryソースを取得して、それらがどのように機能するかを確認できます。

于 2011-07-01T10:23:59.967 に答える