使用bootstrap 3 ajax模态......例如:
<a href="/process/modal.php" data-target="#cmodal" data-toggle="modal">Delete this</a>
<div class="modal fade" id="cmodal" tabindex="-1" role="basic" aria-hidden="true">
<img src="/assets/img/ajax-modal-loading.gif" alt="" class="loading">
</div>
多次单击模式永远不会刷新内容。它总是被缓存。我在这里搜索和阅读了很多,并且有很多选项,但非常相似。
我决定:
$("div[id^='cmodal']").on('hidden.bs.modal',
function () {
$(this).removeData('bs.modal');
}
);
这应该允许我使用模式id,它以cmodal开头,后面是任何东西,而不是'缓存'内容。
它不起作用。即使使用特定的ID名称也不起作用。我尝试了在BS上找到的其他方法用于BS3,但这些方法不起作用。这笔交易是什么?他们真的提供了每次都没有'刷新'的模态加载吗?使用它的整个模态功能是无用的,无法更改内容。
答案 0 :(得分:0)
确实是从服务器缓存导致问题。
在htacess中我现在使用以下命令强制不对php文件进行缓存。结合模态的代码,这解决了问题,我现在可以在模态中使用动态内容(php)。
<FilesMatch "\.(php)$">
ExpiresDefault "access plus 0 seconds"
Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0"
Header set Pragma "no-cache"
</FilesMatch>
我还稍微修改了模态代码,以便更普遍应用。没有理由担心此方法中的ID名称,并且始终为bootstrap 3中的模态设置类。
$('.modal').on('hidden.bs.modal',
function() {
$(this).removeData('bs.modal');
}
);