自己置換スクリプトの実装に問題がありました。私はひどく混乱していることを認めます。
1 つをクリックすると POST リクエストがサーバーに送信されるように、2 つのボタンを実装しようとしています。サーバーは、あなたが実際にこの Web ページにアクセスしたことを確認し、不完全な Web ページを含むページ/ボタンをクリックした後に更新したい部分だけを含むページに HttpResponseRedirect を返します。元の jQuery リクエストがその新しいページを受け取ると、現在のページの要素を受け取ったばかりの新しいページに置き換えます。
私のjQueryは次のようになります:
<script id="self_replacing">
$(document).ready(function() {
$('#button1').click(function(){
$.post("/", {
unique_id : "{{ unique_id }}",
csrfmiddlewaretoken: '{{ csrf_token }}'
},
function(data){
var js_portion = $('<div/>').html(data).find('self_replacing')
var html_portion = $('<div/>').html(data).find('pic_content')
$('#pic_content').replaceWith(html_portion)
$('#self_replacing').replaceWith(js_portion)
});
});
});
</script>
不完全なページ:
<script id="self_replacing">
$(document).ready(function() {
$('#button1').click(function(){
$.post("/", {
unique_id : "{{ unique_id }}",
csrfmiddlewaretoken: '{{ csrf_token }}'
},
function(data){
var js_portion = $('<div/>').html(data).find('self_replacing')
var html_portion = $('<div/>').html(data).find('pic_content')
$('#pic_content').replaceWith(html_portion)
$('#self_replacing').replaceWith(js_portion)
});
});
});
</script>
<div id="pic_content">
.
.
</div>
私は正しい考えを持っていますか?FireBug コンソールでリクエストを監視すると、ボタンがクリックされるたびにトラフィックが増加し始めます。
たとえば、最初は 1 クリック = 1 POST、1 クリック = 2POST、1 クリック = 3 POST です。なぜこれが起こっているのかよくわかりません。jQuery スクリプトに何か問題がありますか?
注: jQuery スクリプトは、各 POST 後にも更新する必要があります。