【问题标题】:Why symfony2 it rendering the whole page?为什么 symfony2 会渲染整个页面?
【发布时间】:2015-02-25 23:55:20
【问题描述】:

我正在使用 Symfony2,我有一个 base.html.twig 视图,其中包括一个导航栏和一个徽标。此外,我还有其他扩展基础的观点。

当我从一个扩展基础的页面转到另一个页面时,整个页面都在 Safari 中呈现,甚至是导航栏和徽标,当我重新加载页面时也是如此。

Firefox 工作正常。

那么,symfony2 中是否有任何选项可以强制 safari 浏览器重新加载代码所说的内容? (我不想要求用户在他/她的计算机上安装或配置任何东西)。

我想我正在寻找类似的东西(但对于 Symfony2):Livereload

【问题讨论】:

  • 你想要什么?当用户单击您页面上的某个链接时,您是否希望 Safari 重新加载整个页面?
  • 不是那样的,在 Firefox 中可以正常工作,但在 safari 中却不行。清除浏览器和 symfony 中的缓存。
  • LiveReload 可帮助您在 IDE 中的每个 Cmd+S 之后查看页面,而无需在 Safari 中使用 Cmd+R。这就是全部。正如我在你最后一句话之前所理解的那样,你说的是在 ajax 中获取数据,对吗?
  • 我不明白。您正在渲染一个扩展您的基本布局(整个页面)的视图,所以是的,整个页面都被渲染了。你能澄清你的问题吗?
  • 对不起,我认为当一个页面扩展带有块注释标签的基础时,只有块注释标签被渲染。事实上,在 Firefox 中看起来好像是这样的。对于您的答案,我发现我错了。

标签: html symfony safari twig reload


【解决方案1】:

有很多方法可以让 AJAX 请求只加载整个页面的一部分。您可以使用纯 JavaScript 或框架,如 jQuery、Dojo、Backbone.js、Ember.js、AngularJS、Spine.js、KnockoutJS、YUI、Batman.js、Closure、Agility.js、Knockback.js、React.JS。你可以使用它们中的任何一个。它们都包含 AJAX 功能。

但是你不仅需要 JS 框架来处理部分加载。您还需要在服务器端组织控制器。您的控制器不得扩展您的 base.html.twig,而只能发送代表此 html-part 的 html-part 或 JSON-object。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-24
    • 2016-06-17
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    相关资源
    最近更新 更多