问题一,后端如何将数据传输到前端页面?目前我有两种方案:
第一种,在 SpringMVC controller 中直接 return “ somepage ”。
这样,当浏览器打开这个页面时,并没有数据,前端页面向后端发送一个 Ajax 请求来异步地获取数据进行渲染。这样做的好处是能够设计出 REST API ,缺点是需要向后端发起二次请求,用户不能马上看到数据,可能会有一点延迟。
第二种,先往 Map 中放入一个 Json 格式的字符串,然后在 jsp 页面中从 request 域取出这个字符串并绑定到 window 对象中,比如
https://gist.github.com/zeal7s/f1a265a437c3e9f58d37f9cfc3e51186这样,就能在 Redux 中来访问 window.json 来获取后端传来的初始化数据。
请问,现在主流的做法是哪一种,或者还有更好的方式吗?
问题二,关于前端代码热加载的问题:
执行命令 webpack-dev-server --progress --colors 后,当我更改了前端代码,命令行中确实看到了变化,但是实际上 webpack 的 output 路径下的文件内容并没有发生变化。我必须重新执行 webpack 命令并且重新部署 war 包才能在浏览器中看到变化。
以下是我的文件夹目录结构,不晓得对于我遇到的问题有没有什么影响
src
├── main
│ ├── java
│ ├── resources
│ └── webapp
│ ├── WEB-INF
│ │ └── views
│ │ └── home.jsp
│ └── resources
│ ├── built(Webpack输出文件夹)
│ │ ├── app.js
│ │ └── app.js.map
│ ├── images
│ ├── scripts
│ │ └── app.js
│ └── styles
│ └── style.css
└── test
├── java
└── resources
我应该如何修改才能使前端代码热加载生效呢?
多谢!
admol
2016-11-07 09:59:37 +08:00
倾向于第一种
1. 既然 前端页面向后端发送一个 Ajax 请求来异步地获取数据进行渲染, 那么我觉得这个页面的数据应该是用户不需要立马就需要看见的, 可能需要点击一个展开或者点击一个下拉框之类的再去 ajax 加载数据 , 如果是需要一进入就需要展示的数据也就没必要再 ajax 去异步请求一次了....
2.还需要在 js 写``request.getAttribute(xxxxx)``这样的代码实在是麻烦, 而且还要手动放 request 里面扔数据, 觉得实在是没必要...
关于 1L 说的出现`{{}}`问题, 用 velocity 模版引擎不会出现这样的问题
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/318584
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.