我的Rails 4应用程序上的UI的不同部分依赖于动态填充的选择控件,其中在第一个选择中选择的选项确定第二个选择中可用的选项。当select的onChange事件被触发时,设置第二个选择的选项的脚本会运行。
一切正常,直到用户点击浏览器的后退按钮并返回包含两个选择控件的表单。第一个选择保留用户的选择,但第二个选择(由脚本动态填充)将恢复为默认选项。
当用户使用后退按钮时,浏览器似乎根本不会触发任何事件,所以对我来说似乎没有任何东西可以挂起我的脚本。如何在用户按下后退按钮后运行脚本?
如果我无法运行实际脚本,我还有什么选择?我是否必须放弃动态选择以支持单个大量选择,其中列出了一个控件中的所有选项?
答案 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,但它在这种有限的情况下起作用。