asp.net-mvc – 通知面板类似于stackoverflow的
|
记住在页面顶部显示的小div,以通知我们的东西(如新徽章)? 我想实现类似的东西,并寻找一些最佳做法或模式。 我的网站也是一个ASP.NET MVC应用程序。理想情况下,答案将包括“把这个放在主页”和“在控制器中做这个”的细节。 只是为了节省你不必看看自己,这是我看到的欢迎消息,当你没有登录在stackoverflow的代码。 <div class="notify" style="">
<span>
First time at Stack Overflow? Check out the
<a href="/messages/mark-as-read?returnurl=%2ffaq">FAQ</a>!
</span>
<a class="close-notify" onclick="notify.close(true)" title="dismiss this notification">×</a>
</div>
<script type="text/javascript">
$().ready(function() {
notify.show();
});
</script>
我想补充一点,我完全理解这一点,也理解jquery的参与。我只是感兴趣谁把代码放入标记和什么时候(“谁”在ASP.NET MVC应用程序中的实体)。 谢谢! 解决方法在窥探代码一点,这里是一个猜测:以下通知容器始终位于视图标记中: <div id="notify-container"> </div> 默认情况下隐藏通知容器,并且在某些情况下由javascript填充。它可以包含任意数量的消息。 如果用户未登录 持久性:Cookie用于跟踪是否显示消息。 服务器端生成的代码在视图中: <script type="text/javascript">
$(function() { notify.showFirstTime(); });
</script>
showFirstTime()javascript方法只是决定是否显示“这是你的第一次在这里吗?消息,基于是否设置了cookie。如果没有cookie,则显示消息。如果用户采取操作,则设置Cookie,并且该邮件将来不会显示。 nofity.showFirstTime()函数处理检查cookie。 如果用户已登录 持久性:数据库用于跟踪是否显示消息。 服务器端生成的代码在视图中: 例如,如果我登录到一个视图,我在标记中看到以下SO: <script type="text/javascript">
1
2 var msgArray = [{"id":49611,"messageTypeId":8,"text":"Welcome to Super User! Visit your u003ca href="/users/00000?tab=accounts"u003eaccounts tabu003c/au003e to associate with our other websites!","userId":00000,"showProfile":false}];
3 $(function() { notify.showMessages(msgArray); });
4
</script>
因此,如果用户没有登录或者注入消息并为登录用户调用“showMessages”,服务器端代码将注入代码来调用“showFirstTime”方法。 更多关于客户端代码 另一个关键组件是“通知”JavaScript模块Picflight已经de-minified(你可以做同样使用yslow的firebug)。通知模块基于服务器端生成的javascript来处理通知div的填充。 未登录,客户端 如果用户未登录,则模块在用户X退出通知时处理事件,或通过创建Cookie转到常见问题解答。它还确定是否通过检查cookie来显示第一时间消息。 登录,客户端 如果用户已登录,则通知模块将服务器生成的所有消息添加到通知div中。它也很可能在用户关闭消息时使用ajax来更新数据库。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – MVC 3 – 其他视图数据未出现在编辑器中用
- asp.net-mvc – 如何提交本地jqgrid数据和表单输入元素
- ASP.NET MVC SEO URL
- asp.net-mvc-4 – 如何在视图页面上缩小脚本块内的JavaScri
- asp.net-mvc – 在运行时ASP.NET捆绑和缩小有什么好处?
- asp.net-mvc – ASP.NET MVC 4 Web API无法映射包含字符串“
- asp.net-mvc – 测试控制器使用User.Identity.Name的操作
- asp.net-mvc – IIS 7.0不显示自定义错误页面
- asp.net-mvc – 维护消息完整性
- asp.net-mvc – ASP.NET MVC Action被调用两次
- 如何在ASP.NET MVC中获得HttpResponse的引用?
- asp.net-mvc – 尝试继承RegularExpressionAttri
- ASP.NET Core RC2无法找到Html编码器实现
- ASP.NET中的超链接控件和链接控件有什么区别?
- asp.net-mvc – ASP.NET MVC 4在调试模式下捆绑j
- asp.net-mvc – 带有Expression Web 4的ASP.NET
- asp.net-mvc – 从当前访问者获取CultureInfo并基
- asp.net – $.post vs $.ajax
- 使用ASP.NET创建缩略图的最佳方法是什么?
- 即使ReadOnly设置为false,ASP.NET GridView中的C
