问一个关于页面拼合和函数调用的问题

Q稀里哗啦Q
  • 210

目前的状况是,有一个header和footer的公共页面(只包含html,css,js),是用php来拼合页面A、B、C的头部和尾部。A、B、C三个页面的功能互不一样。

现在遇到的情况就是在header页面我有用户登录的功能。在用户登录成功之后运行一个A页面的push()方法用ajax刷新页面的关键数据。但是这个方法在其他的两个页面用不到,不需要这个方法。所以在打开那两个页面的时候header里的js就会报错。

我现在的解决方法是在登录成功之后先检查函数是否存在,但是这样造成代码乱,在没有这个函数的页面多一个检查不必要,,页面一多的话那就更乱了。

!window.push ? void 0: push() ;

在这里想问一下各位大神,你们有什么更好的方法可以解决这个问题

回复
阅读 2.3k
3 个回答
命中水ヽ
  • 4.9k
✓ 已被采纳

可以通过判断方法是否存在来规避出现的问题

if(typeof yourfunctionname === 'function' ){
    //存在且是function
}else{
    //不存在或不是function
}

虽然不懂php
但是我的建议是:根据判断当前是ABC页面的情况,动态改变请求头的信息
或者设置一个公共的js方法,每次在加载页面的时候进行页面判断,确定所需加载页面头部和尾部内容。因为js的执行速度大于html中dom的渲染间歇

将这个功能单独抽取出来,在需要的head页面中引入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏