首页 > Html5+razor+jqmobile尝鲜

Html5+razor+jqmobile尝鲜

  最近为了给客户演示手机应用所以使用jquerymobile,asp.net mvc做了一个简单的例子,满足如下要求较好的界面显示以及离线应用。下面大体描述一下过程:

  1,使用nuget里的51Degrees.mobi进行客户端类型的判断,手机访问的话自动重定向到mobile的area下,遇到的问题:mobile下的AreaRegistration调用RegisterArea时要使用命名空间

  2,是jqmobile和razor进行前台的显示,使用jqmobile的进行信息的显示等比较好处理,但是产生的问题是对于授权这种重定向,由于jqmobile使用的是ajax获取的方式获得内容填充page显示,使用ajax获取时xmlhttprequest自动进行了重定向获取了重定向后的内容,而在success里无法获得重定向的header导致的问题就是页面上显示的路径是不正确的,比如用户访问某个controller的方法的时候如果没有授权定向到登录页但是在jqmobile的主页面dom上增加的page的fileurl指向的是controller的路径而不是授权的controller的路径,解决方法,可以都修改为使用ajax的方式进行授权登录的验证成功的换前台进行changepage,或者使用razor渲染的时候进行判断,如果没有登录就渲染一个指向登录的链接

3,使用persitencejs和相应的jqmobile插件进行数据的缓存。主页面设置cache.manifest,同时缓存其他常脚本,css等。修改jquery的原生ajax方法在联网的情况下全部用原始的ajax获取数据,不联网的情况下获取本地localdatabse缓存的数据。缓存时要删除旧的缓存数据只添加当前ajax请求对应路径的最新的html,这儿遇到一个问题就是persitence的数据操作使用callback的方式进行数据的查找而callback执行的时间不确定所以数据的删除和添加都要写到callback里而不要再callback里写删除在外层写添加。还有一个问题是在线的检测问题,查看htmldemo网站发现safari和chrome都不支持onLine的检测,所以后来改用定时轮询特定页的方式实现在线监测

使用笔记本上的chrome测试程序再联网和断网的情况下可以正常运行,但是使用我的milestone(2.1)在线的情况下测试完全没有问题,但是切换到飞行模式后ajax请求都会进入到error中,使用about:debug打开android的log显示查看本地数据的缓存和轮询检测都没问题,但是ajax都返回了error后来去掉cache.manifest就可以了,但是去掉后又无法访问离线页面,在android2.2的虚拟机上测试没有问题,可能是浏览器实现上有差异

源代码

图像 1

图像 2

图像 3

转载于:https://www.cnblogs.com/sdhjl2000/archive/2011/03/24/1994358.html

更多相关:

  • nan 是not a number ,inf是无穷大 numpy.nan_to_num(x): 使用0代替数组x中的nan元素,使用有限的数字代替inf元素...

  • 简介 Simple Reference  基础CUDA示例,适用于初学者, 反映了运用CUDA和CUDA runtime APIs的一些基本概念.Utilities Reference  演示如何查询设备能力和衡量GPU/CPU 带宽的实例程序。Graphics Reference  图形化示例展现的是 CUDA, OpenGL,...

  • 在做开发的过程中难免需要给内核及下载的一些源码打补丁,所以我们先学习下Linux下使用如如何使用diff制作补丁以及如何使用patch打补丁。...

  • 我在调研ATS 4.2.3挂载SSD的过程中,遇到很多坑,特此详细记录我摸索的主要过程,以便大家以后避免之。 基本思路可以完全照搬参考文献[2][3] 下面的安装假定是以root用户身份进行的,Linux服务器已经安装好系统,磁盘已经做好分区。 首先需要认识我们的Linux服务器的硬件配置和软件情况 硬件配置: DELL...

  • 该博文整理一些在使用stl编程过程中遇到的小经验: 1.在多线程环境下面打印调试,如何使用cout及时刷新到屏幕上? 在C中我们经常这样使用: printf("Hello World "); fflush(stdout); 如果使用stl,我们可以这样使用: cout << "Hello World" << endl <...

  •     注意,前情提示: 本代码基于《Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)》 传送门Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)_你挚爱的强哥❤给你发来1条消息❤-CSDN博客   在/api/demo/文件夹下面创建CURD.js...

  • 第一:在map端产生join mapJoin的主要意思就是,当链接的两个表是一个比较小的表和一个特别大的表的时候,我们把比较小的table直接放到内存中去,然后再对比较大的表格进行map操作。join就发生在map操作的时候,每当扫描一个大的table中的数据,就要去去查看小表的数据,哪条与之相符,继而进行连接。这里的join并不会涉...

  • ** 0x01 原理分析 ** 还是很早之前爆出来的漏洞,现在拿出来学习一下,参考阿里巴巴:https://security.alibaba.com/... 漏洞发生在/inc/common.inc.php页面中。首先看这个函数: 首先使用ini_get来获取php.ini中变量'register_globals'的值,而r...

  • 就之前本人主持开发的金融产品所遇到的安全问题,设计部分请参见:http://www.cnblogs.com/shenliang123/p/3835072.html 这里就部分web安全防护就简单的交流: 1.1系统安全 1.1.1  客户端脚本安全 (1)跨站脚本攻击(XSS):        XSS攻击,通常指黑客通过“html注...

  • 一、活动目录灾备简介  本次演练我们将讨论如何让域控制器从灾难状态(例如由于硬件或软件故障引起的数据库故障)进行恢复的步骤。此类灾难通常会导致域控制器失效,而且会使计算机无法正常引导;将只提供对运行 Active Directory 的域控制器(不运行其它服务)进行恢复的信息。如果该计算机上还安装有其它服务,例如域名系统 (DNS)...

  • 本文是西门子开放式TCP通信的第2篇,上一篇我们讲了使用西门子1200PLC作为TCP服务器的程序编写,可以点击下方链接阅读:【公众号dotNet工控上位机:thinger_swj】基于Socket访问西门子PLC系列教程(一)在完成上述步骤后,接下来就是编写上位机软件与PLC之间进行通信。上位机UI界面设计如下图所示:从上图可以看出...

  • 我有一个大型数据集,列出了在全国不同地区销售的竞争对手产品。我希望通过使用这些新数据帧名称中的列值的迭代过程,根据区域将该数据帧分成几个其他区域,以便我可以分别处理每个数据帧-例如根据价格对每个地区的信息进行排序,以了解每个地区的市场情况。我给出了以下数据的简化版本:Competitor Region ProductA Product...

  • 作为一名IT从业者,我来回答一下这个问题。首先,对于具有Java编程基础的人来说,学习Python的初期并不会遇到太大的障碍,但是要结合自己的发展规划来制定学习规划,尤其要重视学习方向的选择。Java与Python都是比较典型的全场景编程语言,相比于Java语言来说,当前Python语言在大数据、人工智能领域的应用更为广泛一些,而且大...

  • 这段时间通过学习相关的知识,最大的变化就是看待事物更加喜欢去了解事物后面的本质,碰到问题后解决问题思路也发生了改变。举个具体的例子,我在学习数据分析,将来会考虑从事这方面的工作,需要掌握的相关专业知识这个问题暂且按下不表,那哪些具体的问题是我需要了解的呢,以下简单罗列:1、了解数据分析师这个岗位在各个地区的需求情况?2、数据分析师的薪...

  • 这一节将开始学习python的一个核心数据分析支持库---pandas,它是python数据分析实践与实战的必备高级工具。对于使用 Python 进行数据分析来说,pandas 几乎是无人不知,无人不晓的。今天,我们就来认识认识数据分析界鼎鼎大名的 pandas。目录一. pandas主要数据结构 SeriesDataFrame二...