我知道关于通知的SO有很多问题,但我没有遇到触发jquery根据模型事件显示通知的任何问题。我将通知包装在div中,显示设置为none,并希望从模型中访问jquery以显示它们。
使用30多种不同类型的通知,在控制器的create.js.erb文件中使用此代码(检查用户是否应该提示通知)是混乱的;使用回调将是非常优选的。
请不要用jquery show / hide方法回复,因为那不是我要问的。任何输入都会非常感激(好吧,除了解释jquery的hide / show方法之外的任何输入)。这是回调:
after_create :hundredrep
def hundredrep
unless Badge.where(:user_id => current_user.id, :name => "hundredrep", :category => "3").any?
if current_user.reputation > 100
current_user.badges.create(:name =>"hundredrep", :category = "3")
end
end
end
我希望在上面的回调中调用jquery:
$(document).ready(function() {
$(".browser_notice").slideDown(500);
});
答案 0 :(得分:0)
要将数据从服务器推送到客户端,您必须使用以下技术之一:
根据您需要的反应水平(什么是“实时”:1秒,10秒,30秒,1分钟?),第一种方法是最简单的方法。对于HTTP流式传输或长轮询,您必须采用Comet approach /事件驱动的IO服务器,如Goliath,NodeJS,Tornado等。您还可以查看即插即用API例如Pusher。
确保DRYability使用模型回调或模型观察者将事件推送到Comet,数据库中的表,Pusher或任何符合您需求的解决方案。