首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
共享函数是最先被调用名吗?
sszyc8
2018-05-02 14:01
我在页面上发起get请求,在请求结果回调里调用共享函数,为啥请求还没执行就先走全局共享函数了?
项目:
JFinal
评论区
sszyc8
2018-05-02 14:04
//以jQuery的Ajax请求为例,请求下一页数据(注意:page是从2开始返回)
$.get('../blog/getArticles?page='+page+'&categoryId=1', function(res){
layui.each(res.articlePage.list, function(index, x){
eArticle.getCategoryNamesByIds(x.id) // 全局共享函数
});
}
......
/**
* 共享设置
* @param engine
*/
public void configEngine(Engine engine) {
//由于对象被全局共享,所以需要注意线程安全问题,尽量只共享常量以及无状态对象。
//engine.addSharedObject("RESOURCE_HOST", "http://res.jfinal.com");
engine.addSharedObject("eArticle", new ArticleEngine());
}
回复
sszyc8
2018-05-02 14:10
总是提示 x是null 结果断点调试,发现先调用的 全局共享函数,请求还没调用。
回复
sszyc8
2018-05-02 14:13
#(eArticle.getCategoryNamesByIds(x.id)) 我是这样在请求结果之后调用的
回复
JFinal
2018-05-03 12:14
我看到这段代码:
eArticle.getCategoryNamesByIds(x.id) // 全局共享函数
jfinal enjoy 引擎的共享函数是在后端被 java 调用的,而你这段代码是前端页面 javascript 中的调用, 前后端本质是完全无关的,一定要区分开来
后端在渲染完事以后,响应给页面的是纯 text 文本,浏览器的 js 是在这些返回的 text 文本上做文章
回复
发送
我要反馈
热门反馈
扫码入社
$.get('../blog/getArticles?page='+page+'&categoryId=1', function(res){
layui.each(res.articlePage.list, function(index, x){
eArticle.getCategoryNamesByIds(x.id) // 全局共享函数
});
}
......
/**
* 共享设置
* @param engine
*/
public void configEngine(Engine engine) {
//由于对象被全局共享,所以需要注意线程安全问题,尽量只共享常量以及无状态对象。
//engine.addSharedObject("RESOURCE_HOST", "http://res.jfinal.com");
engine.addSharedObject("eArticle", new ArticleEngine());
}