Я делаю ajax-вызов для получения списка, и кеш имеет значение true. Позже я вставляю новый элемент и снова получаю список, но на этот раз я установил для кэша значение false. Jquery правильно показывает мне правильный список. Именно в этот момент я ожидаю, что jquery начнет кэшировать этот обновленный список с новыми данными. Однако, когда я делаю еще один вызов списку и запрашиваю кэшированную копию ... он показывает мне исходный список без моих новых данных! Очевидно, он не сделал недействительными кэшированные данные.
Пожалуйста, кто-нибудь скажет мне, что я что-то напортачу, и описанный выше процесс вызван ошибкой в моем коде.
http://test.virtual -chaos.net / сообщения / бла
(извините за язык)
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MessageListLoader>" %>
<%@ Import Namespace="GoFuckYourself.Web.Controllers.Messages.ViewModels" %>
<input type="submit" value="Add Message" id="addMessage" />
<% Html.RenderPartial("MessageList", Model.Messages); %>
<input type="submit" value="Previous" id="previousMessages" />
<input type="submit" value="Next" id="nextMessages" />
<div id="messageEditor">
</div>
<div class="messageListLoader">
<script type="text/javascript" id="$">
var messagesPage = <%: Model.Page %>;
function clearForm(form) {
$(form).find(':input').each(function () {
switch (this.type) {
case 'password':
case 'select-multiple':
case 'select-one':
case 'text':
case 'textarea':
$(this).val('');
break;
case 'checkbox':
case 'radio':
this.checked = false;
}
});
}
function postForm(form, trigger) {
var form = $(form);
var action = form.attr("action");
var serializedForm = form.serialize();
$.post(action, serializedForm, function () {
clearForm(form);
$('body').trigger(trigger);
});
}
function cancelForm(trigger) {
$('body').trigger(trigger);
}
function LoadHtml(url, loadFromCache, placeholderid) {
$.ajax({
url: url,
cache: loadFromCache,
dataType: "html",
success: function (data) {
$(placeholderid).replaceWith(data);
}
});
}
function LoadMessageList(loadFromCache) {
var url = '<%: Url.Action("loadpage", "messages", new { CategoryName = Model.Category.CategoryName })%>' + '/' + messagesPage;
LoadHtml(url, loadFromCache, '#messageList');
}
function LoadMessageAdder() {
var url = '<%: Url.Action("insert", "messages", new { CategoryName = Model.Category.CategoryName }) %>';
LoadHtml(url, true, '#messageEditor');
}
function LoadMessageUpdater(id) {
var url = '<%: Url.Action("update", "messages", new { CategoryName = Model.Category.CategoryName }) %>' + '/' + id;
LoadHtml(url, false, '#messageEditor');
}
function LoadMessageDeleter(id) {
var url = '<%: Url.Action("delete", "messages", new { CategoryName = Model.Category.CategoryName }) %>' + '/' + id;
LoadHtml(url, false, '#messageEditor');
}
$('body').bind('messageListRefreshEvent', function (e) {
LoadMessageList(false);
$('#messageEditor').text('');
});
$('body').bind('messageFormCancelEvent', function (e) {
$('#messageEditor').text('');
});
$('#addMessage').click(function() {
LoadMessageAdder();
});
$('#previousMessages').click(function() {
messagesPage--;
if(messagesPage < 0) { messagesPage = 0; }
LoadMessageList(true);
});
$('#nextMessages').click(function() {
messagesPage++;
LoadMessageList(true);
});
</script>