现如今好多浏览器都有「隐身模式」,Safari 管这叫「Private Browing」,国内各种牌子的套壳浏览器叫「无痕浏览」.私以为从命名上来说,倒是国内更中文一些. 这种模式下浏览网页踏雪无痕,雁过不留声.具体来说,与正常模式的区别是浏览器不会保存历史记录,没有页面缓存,所有本地数据也都是临时的,页面关闭后无法还原.譬如本文下面要讲到的 localStorage. 并不是说这种模式下绝对安全,服务器仍然对用户的浏览是有感知的.所以 IP 什么的依然可以追踪.这世界并不如我们天真设想般烂漫.…
前言 Safari开启无痕模式后,localStorage和sessionStorage为空,对其进行set操作也会报错,也就是说这种情况下,storage是被禁止使用了.接下来说一下解决方法. 解决方案 我们项目框架上的解决方法是对storage进行一层封装,遇到这种开启无痕模式的情况,会定义一个window的全局变量,把之前准备存放到storage的内容改为存到这个全局变量中. 注意,无痕模式下localStorage和sessionStorage对象本身依然是存在的,只是调用setItem…
前言 前阶段,测试提了个bug,在苹果手机中无痕模式下,搜索按钮不好使,无法跳页,同时搜索历史也没有展示(用户搜索历史时使用localStorage存储). 正文 iOS上Sarfari在无痕模式下,浏览器假装支持localStorage,并在全局window上暴漏了该方法,所以校验是有localStorage对象的,但是调用setItem进行保存的时候,就报Error: QuotaExceededError ... : The quota has been exceeded.   因此,进行了…
myStorage在ios safari无痕浏览模式下的解决方案 今天看到了这个帖子LocalStorage 在 Private Browsing 下的一个限制, 吓尿了,如果用户开启了无痕浏览,app几乎就废了,虽然做了plus.storage的兼容,不过会很慢很慢滴. 赶紧测试一下.... 还好,暂时没问题. 我这小心肝终于平静了. 万一,万一,万一有影响呢,还是做下容错吧,代码放到了github上,这里就不贴出来了. myStorageForPrivateBrowing…
昨天下午,测试提了一个bug,问题是:在苹果手机Safari无痕浏览模式下系统登录成功但是页面不跳转. 思前想后找了半天没思路,后来经过同事的点拨,说可能是禁用了cookie之类的,反正我也没思路就顺着这个发散,结果还真是,localStorage无法在苹果Safari的无痕浏览模式下使用,因为不支持,具体解决办法就是加个判断,看看浏览器是否支持localStorage. function isLocalStorageSupported() {        var testKey = 'tes…
safari 无痕浏览情况测试(部分手机)   1.测试机型 iPhone7 Plus  版本 11.3 iPhone6 Plus  版本 11.3.1 iPhone6    版本 10.2.1 iPhoneSE        版本 9 oppe r9 2.测试浏览器 Sarfari    UC    自带浏览器   3.结果: iOS9,iOS10    Sarfari setItem 报错 getItem null iOS 11    Sarfari setItem  可set getIte…
1.建立TreeView的標題         2.建立TreeView的Item         3.在TreeView的Item中的建立SubItem                  如果將各部分拆分開來的方法為:         1.建立TreeView的標題         2.建立Item         3.建立SubItem         4.將SubItem加入到Item中         5.將Item加入到TreeView中                  注:    …
构成ASP.NET Web API核心框架的消息处理管道既不关心请求消息来源于何处,也不需要考虑响应消息归于何方.当我们采用Web Host模式将一个ASP.NET应用作为目标Web API的宿主时,实际上是由ASP.NET管道解决了这两个问题.具体来说,ASP.NET自身的URL路由系统借助于HttpControllerHandler这个自定义的HttpHandler实现了ASP.NET管道和ASP.NET Web API管道之间的“连通”,但是在Self Host寄宿模式下,请求的监听.接收…
如果我们在Global中的Application_Start事件中访问HttpContext.Current.Request对象,如: protected void Application_Start() { var url=HttpContext.Current.Request.Url.ToString(); } 只是简单的想取一下当前网站的URL.在调试的时候一切正常,但当我们把网站发布到IIS上面的时候,如果IIS应该程序池在集成模式,就会是会报“请求在此上下文中不可用”的异常,但如果是经…
<Windows Azure Platform 系列文章目录> 本文内容比较多,请大家仔细阅读,谢谢! 请读者注意,在Azure ARM平台,有两种虚拟机模式:经典虚拟机和ARM虚拟机 ASM部署(经典虚拟机): 1.我们通过Azure Classic Portal: http://manage.windowsazure.cn,部署的都是ASM资源(经典虚拟机) 2.如果我们通过Azure New Portal (http://portal.azure.cn) 创建,需要选择部署模式为Clas…
<Windows Azure Platform 系列文章目录> 最近在帮助一个客户设置WAF (Web Application Firewall),WAF厂商要求在负载均衡器上,设置多个公网IP地址.架构如下图: 我研究了一下,在Azure ARM模式下可以实现,在这里记录一下. 在默认情况下,Azure负载均衡器可以有5个公网IP地址. https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits 如果我们想…
题记:不常发生的事件内存泄漏现象 想必有些朋友也常常使用事件,但是很少解除事件挂钩,程序也没有听说过内存泄漏之类的问题.幸运的是,在某些情况下,的确不会出问题,很多年前做的项目就跑得好好的,包括我也是,虽然如此,但也不能一直心存侥幸,总得搞清楚这类内存泄漏的神秘事件是怎么发生的吧,我们今天可以做一个实验来再次验证下. 可以,为了验证这个问题,我一度怀疑自己代码写错了,甚至照着书上(网上)例子写也无法重现事件引起内存泄漏的问题,难道教科书说错了么? 首先来看看我的代码,先准备2个类,一个发起事件,…
一.同一资源: 二.先上软件界面: (1)wpf界面: 在wpf中实现这样类似web风格的软件界面就不用我多说了,在wpf实现这样的风格是很简单的,完全像网页设计一样的. (2)winform界面 在winfrom模式下开发桌面程序,听到最多是不简单,而且有可能得不偿失,因为需要通过大量的重绘paint事件,很耗性能.但我告诉你我这个布局绝对没有用重绘实现,用的还是 wpf的老祖宗panel实现的,虽然原理和网页背景一样小像素图片平铺,但界面加载的时候丝毫没有闪屏现象.请看代码: partial…
很多时候我们需要做一个工作,在一个方法体里面,读取大数据绑定到UI界面,由于长时间的读取,读取独占了线程域,导致界面一直处于假死状态.例如,当应用程序开始读取Web资源时,读取的时效是由网络链路的速度决定的,那么在读取的过程中整个程序都必然处于一种等待状态,这不是我们想要看到的.那么我们有没有一种机制既能解决效率问题同时可以提供代码的可用性呢?有人可能会说,我们可以使用线程池.线程真的是万能的吗?当处理大并发数据量时就能说明这个问题,线程池最大的并发量有限制,而且线程是极度占用资源. .NET…
老老实实学WCF 第十篇 消息通信模式(下) 双工 在前一篇的学习中,我们了解了单向和请求/应答这两种消息通信模式.我们知道可以通过配置操作协定的IsOneWay属性来改变模式.在这一篇中我们来研究双工这种消息通信模式. 在一定程度上说,双工模式并不是与前面两种模式相提并论的模式,双工模式的配置方法同前两者不同,而且双工模式也是基于前面两种模式之上的. 在双工模式下,服务端和客户端都可以独立地调用对方,谁都不用等待谁的答复,同样也不期待对方答复,因为如果期待答复,就变成请求/应答模式了.也 就是…
在项目中,凡是涉及到表格的地方用的最多的控件,自然少不了DataGrid的身影,它明了的展示各种数据让人十分喜欢.现在要实现一个功能,使DataGrid具有全选和项选中的功能,如果在传统后台代码中完成这个事情可以说十分简单,但是换到MVVM模式下呢? 不得不面临一个很囧的情况,为了完成UI端CheckBox被选中后能在ViewModel中获取到选中的数据,不得不在在业务实体之外添加一个字段IsChecked 来与我们的数据交互,这样不仅影响美观还影响心情. 为了实现这一点,无疑需要设置DataG…
“Options模式”下的配置是如何绑定为Options对象 配置的原子结构就是单纯的键值对,并且键和值都是字符串,但是在真正的项目开发中我们一般不会单纯地以键值对的形式来使用配置.值得推荐的做法就是采用<.NET Core采用的全新配置系统[1]: 读取配置数据>最后演示的方式将相关的配置定义成一个Options类型,并采用与类型定义想匹配的结构来定义原始的配置,这样就能利用它们之间的映射关系将读取的配置数据绑定为Options对象,我们将这种编程模式称为“Options模式”. [ 本文已…
看到下图,是通过Jqgrid实现表格数据的基本增删查改的操作.表格数据增删改是一般企业应用系统开发的常见功能,不过不同的是这个表格数据来源是非关系型的数据库MongoDB.nosql虽然概念新颖,但是MongoDB基本应用实现起来还是比较轻松的,甚至代码比基本的ADO.net访问关系数据源还要简洁.由于其本身的“非关系”的数据存储方式,使得对象关系映射这个环节对于MongoDB来讲显得毫无意义,因此我们也不会对MongoDB引入所谓的“ORM”框架. 下面我们将逐步讲解怎么在MVC模式下将Mon…
业务类接口在TCP,HTTP,BLL模式下的实例 设计模式混搭 附源码一份 WinForm酒店管理软件--框架这篇随笔可以说是我写的最被大家争议的随笔,一度是支持和反对是一样的多.大家对我做的这个行业的前景有很大的建议啊.虽然市场有困难,但好技术架构肯定是前提.事实也是,当你还是一个孩子准备和一群成年人竞争时,你可以被人轻易的暴力推到,可以被人家多年的经验轻松完虐,别人也会说“大人说话小孩子一边玩去”.这些都是过程,作为一位有准备的小孩会有心理准备的,今天准备把之前的架构中的使用策略实现业务类接…
本文不合适转载,只用于自我学习. 关于为什么要用OpenStack 管理 vSphere 集群,原因可以有很多,特别是一些传统企业,VMware 的使用还是很普遍的,用 OpenStack 纳管至少会带来管理上的便捷性. 1. 部署架构 节点 网卡数 网卡用途 KVM宿主机 4 10G:存储网络 10G:SDN网络 1G:管理网络 1G: IPMI网络 ESXi 宿主机 5 HBA:存储网络 10G:SDN网络 10G:vmKernel 网络 1G:管理网络 1G: IPMI网络 说明: vDS…
client模式下,响应的接口wlan0 加入桥接时出现如下错误: root@root:~# brctl addif br-lan wlan0brctl: bridge br-lan: Operation not supported. 查看相应busybox代码(brctl.c),函数为 brctl_main, strncpy_IFNAMSIZ(ifr.ifr_name, br);  if (key == ARG_addif || key == ARG_delif) { /* addif or…
Self Host模式下的ASP.NET Web API与WCF非常相似,都可以寄宿在任意类型的托管应用程序中,宿主可以是Windows Form .WPF.控制台应用以及Windows Service,寄宿的请求的监听.接收 和响应功能,是通过一个类型为HttpBinding的Binding对象创建的ChannelListener管道来完成的. 一.Binding绑定模型 Binding用来创建处理和传输消息的信道栈,信道栈有一组Channel组成,Binding也由一组BindingElem…
用C#实现C/S模式下软件自动在线升级 1 前言 长期以来,广大程序员为到底是使用Client/Server,还是使用Browser/Server结构争论不休,在这些争论当中,C/S结构的程序可维护性差,布置困难,升级不方便,维护成本高就是一个相当重要的因素.有很多企业用户就是因为这个原因而放弃使用C/S.然而当一个应用必须要使用C/S结构才能很好的实现其功能的时候,我们该如何解决客户端的部署与自动升级问题?部署很简单,只要点击安装程序即可,难的在于每当有新版本发布时,能够实现自动升级.现在好了…
1,通过后台,获取accessToken 和 签名jsApiTicket,并写入浏览器缓存(可以写在app.vue中) <script type="text/ecmascript-6"> import Store from 'common/js/store.js'; const CODE_SUC = 1; const CODE_ERR = 0; export default { name: 'app', data () { return { wxToken: { acces…
在<Tinker + Bugly + Jenkins 爬坑之路>一文中讲了在接入 Tinker 之后,Jenkins 中的一些坑,由此,热修复算告一段落,但是,在直接 Run 模式运行时,程序会报出如下错误: Tinker does not support instant run mode, please trigger build by assembleDebug or disable instant run in 'File->Settings...'. 好吧,使用 TInker 时…
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲述如何在AnyCPU模式下使用CefSharp 因为在某些情况下,不得不用AnyCPU,但是CefSharp支持的是86和64位俩种模式,所以在我查阅了很多国内外的资料下,总结出来的一些精华 参考地址: https://ourcodeworld.com/articles/read/173/how-to-use-cefsharp-chromium-embedded-framework-csharp-…
分享至javascript语言精髓与编程实践 开启严格模式(”use strict"): 在全局代码的开始处加入 在eval代码的开始处加入 在函数声明代码处加入 在new Function() 所传入的body参数块开始处加入 1:在对象中声明相同的属性名 例如: var obj ={ 'name': 1, 'name': 2 }; 会抛出SyntaxError: Duplicate data property in object literal not allowed in strict m…
为了应对未来的版本,以下关键字在严格模式下禁止使用. implements interface let package private protected public static yield 示例, 以下代码浏览器将报错. "use strict"; var public = 10;…
MVVM模式下做的省市区的级联效果.通过改变ComboBox执行命令改变市,区. 解决主要问题就是默认选中第一项 1.首先要定义一个属性,继承自INotifyPropertyChanged接口.我这里用的Prism框架中集成的NotificationObject /// <summary> /// 省 /// </summary> private ObservableCollection<MyArea> provinceBindingList; public Obser…
在Azure的ARM模式下,创建Express Route的命令和ASM模式下是有一些区别的. 本文将介绍在ARM模式下,如果创建Express Route的Circuit. 1. 查看支持的Service Provider Get-AzureRmExpressRouteServiceProvider Name : Beijing Telecom Ethernet Id : /subscriptions//resourceGroups//providers/Microsoft.Network/e…