用户按下按钮后如何触发CoffeeScript / Javascript

时间:2015-06-02 23:44:39

标签: javascript ruby-on-rails coffeescript

我的Rails 4应用程序上的UI的不同部分依赖于动态填充的选择控件,其中在第一个选择中选择的选项确定第二个选择中可用的选项。当select的onChange事件被触发时,设置第二个选择的选项的脚本会运行。

一切正常,直到用户点击浏览器的后退按钮并返回包含两个选择控件的表单。第一个选择保留用户的选择,但第二个选择(由脚本动态填充)将恢复为默认选项。

当用户使用后退按钮时,浏览器似乎根本不会触发任何事件,所以对我来说似乎没有任何东西可以挂起我的脚本。如何在用户按下后退按钮后运行脚本?

如果我无法运行实际脚本,我还有什么选择?我是否必须放弃动态选择以支持单个大量选择,其中列出了一个控件中的所有选项?

1 个答案:

答案 0 :(得分:0)

这是一个不优雅但有利的解决方案:

我没有重新创建自己的会话历史记录机制,而是在表单中添加了In [72]: %%timeit ...: for roll in np.random.rand(N): ...: # grab the first index that the roll satisfies ...: i = np.where(roll < dcs)[0][0] ...: bins[i] += 1 ...: 1000 loops, best of 3: 721 µs per loop In [73]: %%timeit ...: np.bincount(np.searchsorted(dcs,np.random.rand(N),'right')) ...: 100000 loops, best of 3: 13.5 µs per loop ,其中包含了在页面加载时运行的脚本副本(包括用户点击后退按钮时的脚本,而脚本中的脚本)我的资源文件夹仅在新加载页面时运行。

此解决方案无论如何都不是DRY,但它在这种有限的情况下起作用。