localhost和开发服务器环境上的不同引导行为

时间:2014-07-31 10:10:02

标签: jquery twitter-bootstrap

我正在使用bootstrap 3.0.0和jQuery 1.10.1的模态。

在我网站的某个时刻,我需要在模态中显示一个表单,我希望该表单就像一个表单向导。为此,我使用formToWizard pluggin(好吧,它不是插件,但它是我需要的)。

我将其称为如下,因此它适用于最初加载的表单,也适用于模态内的表单。

    $("form.form-steps").formToWizard();
    $("#modal").on('shown.bs.modal', function(){
        $(this).find("form.form-steps").formToWizard();
    });

这个在localhost 中工作得非常好,但是在生产环境中(我使用Heroku)却没有。

使用Chrome的检查器我注意到了一些事情:

  • 首先,当我第一次打开模态时触发事件,因此上面摘录的第3行中的断点会停止执行。 我可以一步一步地将表单转换为我想要的内容。但是,从内部函数返回时,我发现在某些时候(在jquery内部)它会被卡住(就像在无限循环中一样)。

    我想,如果不逐步进行,这将异步发生,错误将在

  • 之前发生
  • 其次,当我不是一步一步地进行,而是第一次打开模态,恢复执行,表单不会被转换。奇怪的是,第二次打开模态不再在断点处停止。

为什么这在生产方面有所不同?由于它是一个前端库,我认为我应该以同样的方式工作。

已更新

根据要求,我复制了我的应用程序,并删除了登录系统以提供错误示例。 Here it is

在那里,两个按钮显示相同的形式。显示为模态的那个不会将表单转换为向导(并且也不会正确显示滑块)。全视图显示的表单可以正常工作。

如果您使用检查员,您会注意到我之前解释的问题。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果没有实例,很难回答这个问题,但根据我的经验,与本地主机和制作的主要区别在于竞争条件"和缓存。您的应用程序下载资源的速度会较慢,如果操作不正确,可能会有一些代码在运行之前运行。另外,请务必关闭缓存,检查生产环境,因为它可能没有发现对新生产代码的所有更改。

请提供生产环境的链接,也许可以在源代码中找到答案。

我还建议注销被触发的事件。是多次触发事件还是实际的" formToWizard"导致循环的方法调用。

我也有点困惑你正在打电话" formToWizard"在事件发生之前以及它何时触发。