问题的现象:
对于frameMarker的语法我就不说了,大家去网上查。一般我们在获取后台数据的时候,直接可以用模板引擎的语法,如图获取得到后台的值,跟项目路径(后台有值传过来的)。但昨天我想在改页面的一个外部引用的一个js里面获取后台值就是获取不到(本人可能前端研究的没有后台深入),页面里面写js获取是获取到的,就是外部的js不行。
问题所在:
其实当时我也是短路了,其实我们在获取页面发请求的时候,后台经过处理,在后台找到我们客户要的页面,并将一些数据填满,然后以html的形式返回给页面,这里的一个关键,在请求到后台,后台根据控制器找到相应的页面并将数据填充之后在转换给html的形式,然后在传给客户端(也就是浏览器),还有就是在后台填充数据,然后以html的数据形式返回给前端的时候,外部js是没有引用进来的,它只是在页面上有写<script type="text/javascript" src="${base}/deep/js/laydate.js"></script>。但真正获取到外部js是后台把页面返回给前端,然后前端(浏览器)在发请求来回去外部静态文件。
解决方式:
1、就是在页面上用js定一个公用属性,把base这个值赋值给这个公用属性,然后给外部js使用
这里又要注意一个js的域的问题,如果你按照我上面的还是发现外部js不能获取那个公用属性,那就是域的问题。这个前端的人应该懂,不懂耶可以百度作用域和作用链
2、就是百度js获取根目录
总结:
这个问题只要是一个观念,我也是一开始脑子短路,我们请求页面,后台找到页面之后不是立即返回给前端,然后在放后台数据的,而是后台找到指定页面,并且相应的数据填充好之后,在弄成html形式(也就是浏览器能解析的形式)返回给浏览器
不知道我这里理解有没有什么不对的地方,如果有不对的地方请大家立即纠正我,不胜感激!!!