javascript - AJAX模板渲染后的PJAX

标签 javascript jquery html ajax pjax

我有一个使用 jQuery 和 pjax(独立)的应用程序。我们正在尝试尝试看看是否可以使用比 jquery-pjax 更灵活、更小的 npm pjax。

我的一个函数在加载数据后设置div的html,这个html包含我们想要作为pjax链接的链接,例如$('#link-container').html('<a href="/account_detail.html?='+account.id+'" data-pjax >') 。但是,单击此链接会导致整个页面重新加载,而不是 pjax 请求。

有没有办法重新实现pjax?当我尝试 new PJAX({elements:[a[data-pjax]]})在 pjax:success 调用中(当来自项目页面的 DOMReady - https://www.npmjs.org/package/pjax )它使用 pjax...但随后加载资源两次。

也许最好的解决方案是使用 jquery-pjax ($(document).pjax(a[data-pjax] 等),但我想看看以前是否有人遇到过此类问题。也许这种情况很少见包括 jQuery 和非 jQuery pjax,但似乎任何异步数据查询和 DOM 修改都可能发生这种情况,我只想重新 PJAX。

最佳答案

我正在使用 jquery-pjax,当您使用它或配置错误时 - 它也会刷新页面,因此您遇到了我遇到的问题之一。

无论如何,我不确定它是否能帮助您解决问题,但我建议大家使用带有 Firebug 的 Firefox,并在“控制台”选项卡中单击“坚持”,您通常会在那里发现一些错误可能会有所帮助,并且由于某处的错误可能会导致页面刷新 - 有时您会错过它,因为控制台也在刷新。

我了解到,您在编写时需要确保:

<a href="/account_detail.html?=2" data-pjax>bla</a>

您需要有一个容器 - PJAX 将内容放入其中,例如:

<div id="pjax-container"></div>

最初,您配置 PJAX 来绑定(bind)这些对象:

<script>
  // this is how I define it in jquery-pjax, so adjust it as you use it.
  $(document).pjax('a[data-pjax]', '#pjax-container');
</script>

所以我了解到导致 PJAX 刷新的关键点:

  • 我发送了两次 header (后端代码)
  • 容器突然从 HTML 正文中删除( div id="pjax-container"),并且当 DOM 丢失时,它没有 放置 HTML 的位置 - 因此它只会刷新页面。
  • 当我最初将 a[data-pjax] 与 jQuery 绑定(bind)时,新的 DOM 对象不会自动由 jQuery 重新绑定(bind)(除非使用“live/on”),因此它们充当常规 <a>标记并使用新 URL 重新加载页面。
  • 一些 JS/PJAX 语法错误

就您而言,如果 pjax-container 是“#link-container”,我不确定将标签放在其中是否是个好主意。

关于javascript - AJAX模板渲染后的PJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26130517/

相关文章:

javascript - 如何在 html 电子邮件内容中显示通过 JS 获取的月份?

javascript - 我无法让我的按钮在我的页面上居中

javascript - Bootstrap 轮播在 AJAX 中不起作用

html - IE 中的图像大小不正确

javascript - 为什么不能将新的 'key - value' 对添加到具有 "for..in"的空 JavaScript 对象,但它适用于非空对象?

javascript - 增加数组中元素的值

javascript - 如何在javascript中过滤逗号分隔的整数值

javascript - $(document).on ('click' 多次触发

javascript - 当光标到达底部时,有没有办法防止 contentEditable 元素滚动?

javascript - JQuery - Animate() 函数仍然在 .not(...)、.not ('...' )、:not(. ..) 和 :not ('...' ) 元素上执行动画