【发布时间】:2014-12-04 19:21:52
【问题描述】:
我正在用 Laravel 用 PHP 开发一个网页。我想为我的 javascript 文件使用属性“defer”或“async”,但我有一些问题。 在每个文档中,我加载一个标题,其中包含:
{{ Html::script('js/jquery.js', array('defer' => 'defer')) }}
{{ Html::script('js/bootstrap.min.js', array('defer' => 'defer')) }}
{{ Html::script('js/pjax.js', array('defer' => 'defer')) }}
{{ Html::script('js/jquery.cookie.js', array('defer' => 'defer')) }}
{{ Html::script('js/blur.js', array('defer' => 'defer')) }}
{{ Html::script('js/scrollbar.js', array('defer' => 'defer')) }}
<!--Form-->
{{ Html::script('js/parsley/parsley.remote.js', array('defer' => 'defer')) }}
{{ Html::script('js/parsley/parsley.js', array('defer' => 'defer')) }}
{{ Html::script('js/parsley/es.js', array('defer' => 'defer')) }}
{{ Html::script('js/icheck.js', array('defer' => 'defer')) }}
<!--Funciones-->
{{ Html::script('js/funciones.js', array('defer' => 'defer')) }}
如果我给它们 async 属性,它们将无法正常工作,因为其中一些是模块化的。 所以我尝试了 defer 属性并且我没有这个问题,但是现在我遇到了内联javascript的问题,因为它调用了标题的函数。 (位于页面底部)。
<script type="text/javascript">
window.addEventListener('popstate', function(e) {
eval(document.getElementById("script_biblioteca").innerHTML);
});
//Scripts on back/forward
section = 'biblioteca';
url_section = "{{Request::root()}}/"+section+"/";
activar_menu('#menu_biblioteca');
buscador('#dinamic_search', '#main', section);
</script>
还有错误:
ReferenceError: $ is not defined
ReferenceError: activar_menu is not defined
我该如何解决这个问题? 而且,我正确地使用了“defer”属性?
【问题讨论】:
-
不一样,因为我不能用这个方法。我在每一页都有一个标题,另一方面,我在每一页都有特定的功能。所以我不能把特定的功能放在顶部,因为每一页的顶部都是一样的。也因为我加载了视图,当我加载这个页面的视图时,我只加载了 div main 的包含,所以我无法访问页面的其余部分。
-
而且建议的解决方案不使用延迟或异步,所以我猜“效率”较低
-
@proyecthd 我回复晚了,可能您已经找到了解决方案,但我添加了一个答案,可以帮助您访问 jsalonen 评论的链接。它不需要修改页眉/页脚上的任何内容,也不需要在脚本之前包含 jQuery(所以没有
$ is not defined)
标签: javascript jquery html performance laravel