freemarker如何优雅的在模版中将js放在页面最下面

发布于 2021-11-29 21:52:48 字数 1153 浏览 918 评论 9

用了macro后,没法将每个页面的js放在最下面

<!DOCTYPE html>
<#macro layout html_title>
    <html lang="zh-cn">
    <head>
        <title>${html_title}</title>
        <#include "/common/meta.html" />
        <#include "/common/css.html" />
    </head>
    <body>
    <#nested>
    <#include "/common/footer.html" />
    </body>
    <#include "/common/js.html" />
    </html>
</#macro>



其中

css.html是公共css

js.html是公共js,如jquery等

我没个页面使用这个layout的时候,所有的js都是在nested的位置的因此,使用jquery是失败的,应该把js代码放在include "/common/js.html"后面才对,因为js是顺序执行,请问有没有方法实现这个效果

我所有页面都是这么使用的

<#include "/common/layout.html" />
<@layout html_title="首页">
    <div id="aa">xxxxx</div>
<script>
    $("#aa").text("hello world");
</script>
</@layout>



那句js代码回失败,因为这时jquery还没引进来,请问如何处理


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

小情绪 2021-11-30 15:22:06

谢谢撸哥啊,你这个我回研究的,回来研究下又不懂的再问你哈

坐在坟头思考人生 2021-11-30 15:21:38

哥们你也用springboot啊,连接池是咋配置的啊,我出现这个错误后就谁也访问不了 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 255,398,447 milliseconds ago.

不乱于心 2021-11-30 14:54:45

回复
http://git.oschina.net/596392912/RunMan 看下这个,这里面配置的Druid的

噩梦成真你也成魔 2021-11-30 14:48:27

回复
太谢谢啦,你这里配置mybatis和druid的都有,我官方文档也读了2,3遍了,你这些如何配置都是怎么知道的呢?

乞讨 2021-11-30 14:35:31

回复
看了点源码,发现了一点小规律,嘿嘿~

兮颜 2021-11-30 12:25:19

仅仅谈谈自己的看法哈:

1. 可采用@字母大号被盗了 的这种模块加载的,采用r.js合并压缩

2. 其实整个项目的话只要js没什么冲突的话可以采用Rails Assets Pipeline把前台页面所需要的js整个压缩成一个,这样其实访问一次就缓存下来了,更是可以减少页面请求数!

另外送上我之前的一篇文章:http://blog.dreamlu.net/blog/47

3. layout中传参(下面是之前在beetl里的搞法、差不多):

<% 
// 页面单独依赖的css、js
var cssExt = [
        "/static/amazeui/datatables/amazeui.datatables.min.css"
    ];
var jsExt = [
        "/static/amazeui/datatables/amazeui.datatables.min.js",
        "/static/laytpl/laytpl.js",
        "/static/admin/data_tables.js"
    ];
%>
<% layout("_layout.html", {blogOpen:true, title:'博文管理', cssExt: cssExt, jsExt: jsExt}){ %>

我觉得第一种是最优选,seajs、requirejs不少公司在用,简历上也能提一笔!

如此安好 2021-11-30 11:22:12

据我这个后端了解,requireJS比seaJS写起来要麻烦些,前者是AMD后者是CMD,前者需要将依赖一并写入代码,后者则不用,就好像java中的Maven

奢望 2021-11-30 01:00:03

我是一枚前端,我们的项目后台语言使用jsp,本来我计划使用json数据传输交互的。可是有变化,需要转换为jsp文件。我使用requirejs模块化加载js,每个页面都只需要引入2个初始js,1-requirejs/2-main.js(配置路径,和定义了一个项目公共模块),其他都异步按需求加载js。

这里是我目前项目使用结构,我也在探索更好的方式。如果大家有,请分享下吧!!

浮生未歇 2021-11-30 00:49:34

我自己想了一下,就是所有页面都变成

<#include "/common/layout.html" />
<@layout html_title="首页">
    <div id="aa">xxxxx</div>
<#include "/common/js.html" />
<script>
    $("#aa").text("hello world");
</script>
</@layout>

不过我觉得很low,呵呵,是不是只能这样了,还是我洁癖太严重呵呵

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文