我有一个带有通知下拉的rails应用程序(类似于Facebook或大多数其他社交网站),它使用javascript发布通知。在大多数页面加载时,在刷新页面之前,此功能不会加载。知道为什么会这样吗?
我不太熟悉js,因为这可能是一个简单的解决方法。
答案 0 :(得分:1)
我猜你启用了Turbolinks。要解决此问题,您不仅要在文档就绪时加载javascript字段,还要在页面提取时加载。
在.js
文件中添加page:load
# will load .js content on document ready
$(function(){
yourJavascriptFileNameInitialize();
});
# will load content when your route changes using Turbolinks
$(document).on("page:load",function(){
yourJavascriptFileNameInitialize();
});
function yourJavascriptFileNameInitialize(){
# put here your code
}
默认情况下启用Turbolinks,它使用ajax
为您加载的页面获取新内容,以减少从服务器加载的内容(使您的应用程序更快)。发生这种情况时,您需要再次加载.js
文件,因为它们已加载但未记录任何文档。因此,您必须在page:load
事件发生时加载。