我有一个Symfony 2项目加载有点慢。页面有点沉重,但我仍觉得这么慢很奇怪。
我检查了Firefox中的网络检查员,注意到大约一半的加载时间是由多次调用routing?callback=fos.Router.setData
造成的,每次都返回相同的javascript。
例如,有一次有12次通话在总共3.84秒内占用了1.92秒,实际上已经加倍了已经很长的装载时间......
这些FOS脚本是什么?为什么我需要这么多脚本?我的Symfony 2配置有什么问题吗?
答案 0 :(得分:4)
FOSRouting
可以通过两种方式工作:
php app/console fos:js-routing:dump
命令将路由转储到静态js中。您似乎正在使用第一个选项。尝试使用秒 - 这会将您的路由转储到静态js文件中,而不是控制器调用。阅读docs如何做到这一点。
为了方便dev
env和prod
env的性能,您可以使用此类代码来包含您的路线。只需记住每次部署都要运行fos:js-routing:dump
命令:
{% if app.debug %}
<script src="{{ path('fos_js_routing_js', {"callback": "fos.Router.setData"}) }}"></script>
{% else %}
{% javascripts 'js/fos_js_routes.js' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endif %}