meteor 发表于 2019-5-12 19:45:36

建议:增加登录成功后的命令插件,便于登录后的一些初始化系统的操作

建议:在登录页面的登录成功后,能增加一个可自定义命令的插件(或者其它机制),便于系统在登录成功后会进行的一些预置初始化的操作。PS1:有哪些预置初始化操作?
答:因为涉及ERP系统以及现场应用系统,比如有些系统的设置参数,需要在登录成功后用js读入缓存,然后后续使用会更加快捷,不用每次都从数据库读取等等之类。

PS2:当然应该有人会建议说为什么不把这个预置操作的命令写在登录后的系统首页 的 编辑页面加载命令里面?
答:这样做的问题是在系统使用过程中每次跳转回到首页都会触发一次预置初始化操作的,就不好了。

PS3:一个思路:在预置的登录页面加上两个命令:登录成功后的命令,登录失败后的命令。可供用户自定注入业务逻辑。

Simon.hu 发表于 2019-5-16 14:01:32

PS1,我可以理解
PS2:我没理解,你都可以写JS在按钮上,为啥不能写到主页的页面加载命令上呢?大不了就是写一个JS代码,判断有就直接return,没有就执行缓存呗
PS:这个你直接在登录页面发一个注册按钮是不是更加好呢?

:lol

meteor 发表于 2019-5-19 12:11:23

Simon.hu 发表于 2019-5-16 14:01
PS1,我可以理解
PS2:我没理解,你都可以写JS在按钮上,为啥不能写到主页的页面加载命令上呢?大不了就是 ...

关于2,为啥不这么写,懒呗~:P 因为懒,所以必须想出一些理由来,如下:
1) 在登录成功后触发比较符合统一的开发规范和开发逻辑思维,会更加适合通用的操作.
   a)例如有些系统登录后希望能通过当前的用户来前往不同的主页,这时候就需要给不同触发的主页都加上这个初始化的命令操作.(当然,这种情况当前的做法是可以先做个统一的登录成功后的过渡首页,然后在首页里面进行逻辑判断,然后自动跳转.但是如果根据奥卡姆的剃刀原理"如非必要,毋增实体",这个对强迫症患者来说就很难接受了)
   b)一般如果是需要从后台获取数据等初始化操作,我会封装在js组件中,作为系统的初始化调用.一般的,这个函数会被设计成 XXX.refreshConfig()这样供调用,因为除了登录后需要进行初始化,在运行中如果修改了一些配置,也可以直接调用这个进行配置的重置,这样,如胡总所说,如果要在首页调用,就需要额外写js判断某些缓存是否存在,如果没有再执行refreshConfig了.这就给团队的开发规范增加了额外的条目. so,根据权责明确的原则,如果是能在登录成功后的统一执行调用,则可以做成一个通用的简单规范,即在登录成功后执行组件的refreshConfig即可.而至于具体的业务页面,包括首页等,则不用去关心这个初始化的问题,直接关注各自的业务逻辑即可.
2)在登录页面发一个注册按钮,这个不是很明白.是说在登录页面自己隐藏一个按钮,在登录成功后会去执行吗? 还是说进入登录按钮就自动执行? 还是说需要显示出来,人工点这个按钮?我觉得主要的问题就在于登录成功与否后的控制逻辑的自定义在这里有所缺失.

Simon.hu 发表于 2019-5-21 18:48:21

那我觉得,你只和修改我们的登录的代码就行了啊,Forguncy.UserManagerCommand.prototype.Logout = function () {
    Forguncy.common.forguncyPost("Account/Logout", {},
                function (dataStr, status) {
                  window.open(Forguncy.ForguncyData.ForguncyRoot, "_self");
                });
    return 1;
};

你直接在function里加你的逻辑就行,然后把这个JS放到全局的JS文件中

meteor 发表于 2019-5-22 11:33:15

:o 胡总果然藏有私货:lol

meteor 发表于 2019-5-22 11:40:16

Simon.hu 发表于 2019-5-21 18:48
那我觉得,你只和修改我们的登录的代码就行了啊,

你直接在function里加你的逻辑就行,然后把这个JS放到 ...

那登录的话是改成原型方法的Login?

Simon.hu 发表于 2019-5-22 14:39:36

Forguncy.UserManagerCommand.prototype.logIn

你先试试,遇到问题了,发求助帖子就行
页: [1]
查看完整版本: 建议:增加登录成功后的命令插件,便于登录后的一些初始化系统的操作