- [Java集合]------ArrayList的扩容机制源码分析
麦兜仔
Java基础java
一、ArrayList的简介publicclassArrayListextendsAbstractListimplementsList,RandomAccess,Cloneable,java.io.SerializableArrayList实现了List、RandomAccess、Cloneable、java.io.Serializable接口Lits:说明ArrayList是一个有序可重复的集合
- 秋招Day22 - Dubbo
Dubbo如何做序列化?Dubbo把序列化的过程已经内部封装好了,只需要poji类实现Serializable接口就行。POJO类和服务接口都另外定义在公共模块中,让生产者和消费者都依赖这些模块注册中心挂了,服务是否可以正常访问?可以,因为消费者第一次从注册中心获取服务者列表的时候,会在本地缓存一份,下次就不用再从注册中心获取了,除非服务提供者的元信息有变动,才会由注册中心推送更新。Dubbo如何
- JDK 8 Condition 源码详解(详细注释版)
csdn_tom_168
源码学习JUC并发包javaJUCCondition源码学习
JDK8Condition源码详解(详细注释版)1.类定义和基本属性publicclassConditionObjectimplementsCondition,java.io.Serializable{//序列化版本号privatestaticfinallongserialVersionUID=1173984872572414699L;/***条件等待队列的第一个节点*构成一个FIFO的单向链表队
- JDK 8 AtomicIntegerArray 源码详解(详细注释版)
csdn_tom_168
源码学习JUC并发包javaAtomicIntegerArray源码学习
JDK8AtomicIntegerArray源码详解(详细注释版)1.类定义和基本属性publicclassAtomicIntegerArrayimplementsjava.io.Serializable{//序列化版本号privatestaticfinallongserialVersionUID=2862133569453604235L;/***Unsafe类实例,提供底层的原子操作*通过Uns
- JDK 8 AtomicLongArray 源码详解(详细注释版)
csdn_tom_168
源码学习JUC并发包javaAtomicLongArrayJUC源码学习
JDK8AtomicLongArray源码详解(详细注释版)1.类定义和基本属性publicclassAtomicLongArrayimplementsjava.io.Serializable{//序列化版本号privatestaticfinallongserialVersionUID=-2308431214976778248L;/***Unsafe类实例,提供底层的原子操作*通过Unsafe可以
- JDK 8 StampedLock 源码详解(详细注释版)
csdn_tom_168
源码学习JUC并发包javaJUCStampedLock源码学习
JDK8StampedLock源码详解(详细注释版)1.类定义和基本属性publicclassStampedLockimplementsjava.io.Serializable{//序列化版本号privatestaticfinallongserialVersionUID=-6001602636862214147L;/***CPU核心数,用于优化自旋策略*/privatestaticfinalint
- Android中动态广播注册和收发原理
xzkyd outpaper
android系统开发知识android计算机八股
1.注册广播:封装Binder对象到AMS动态广播的注册核心在于将接收器与AMS(ActivityManagerService)建立跨进程通信通道,具体流程如下:Binder对象生成当应用调用registerReceiver()动态注册广播时,系统会通过LoadedApk创建ReceiverDispatcher对象,其内部封装了InnerReceiver(继承自IIntentReceiver.St
- Android Jetpack Compose + MVI 开发流程深度分析
你过来啊你
androidcomposemvi
MVI架构核心原理MVI(Model-View-Intent)是一种基于单向数据流的架构模式,其核心组件关系如下:[View]--Intents-->[ViewModel]--States-->[View]||用户交互事件处理业务逻辑||[View]=emptyList(),valisLoading:Boolean=false,valerror:String?=null,valnewTodoTit
- Apache Ignite实现无死锁特性
lang20150928
其他javaIgnite
这段内容讲的是ApacheIgnite中OPTIMISTICSERIALIZABLE事务的“无死锁”特性,以及它是如何工作的。我们来一步步地用通俗易懂的中文解释这段内容,并帮助你理解它的核心思想。一、核心思想:为什么OPTIMISTICSERIALIZABLE事务是“无死锁”的?在Ignite中:悲观事务(PESSIMISTIC)是通过顺序加锁来实现的,如果多个事务以不同顺序访问多个key,就可能
- 2022-08-18(listening)
Catholi_costudy
Vocabularypeculiarlyad.特别,尤其,古怪地perspectiven.视角,观点,透视画法isolatev.孤立,分离,隔离burdenn.负担,责任,负重overemphasizev.过分强调astonishv.使吃惊,使惊讶intentionn.意图,目的,打算,愈合unselfishnessn.不自私,慷慨practicala.真实的,实际的starvationn.饥饿,
- Flutter Json数据转为和自动生成模板代码
Good Weking
jsonflutter前端
使用json_serializable插件生成模板代码1.添加依赖库打开跟目录pubspec.yaml文件添加依赖库:dependencies:json_annotation:^4.4.0//注解依赖dev_dependencies:json_serializable:^6.1.4//json格式化build_runner:^1.6.12.利用json生成模板代码可以使用网页https://cai
- 什么是序列化?是二进制吗?一文解答你的疑惑!
一、序列化:数据转换的艺术1.1什么是序列化?序列化(Serialization)是指将数据结构或对象状态转换为可存储或可传输的格式的过程。简单来说,就是把内存中的对象变成可以保存到文件或通过网络发送的形式。//Java序列化示例publicclassPersonimplementsSerializable{privateStringname;privateintage;//gettersands
- LinkedList集合源码解析
小北m
java
LinkedList集合LinkedList是一个基于双向链表实现的集合类LinkedList实现了以下接口:List:表明它是一个列表,支持添加、删除、查找等操作,并且可以通过下标进行访问。Deque:继承自Queue接口,具有双端队列的特性,支持从两端插入和删除元素,方便实现栈和队列等数据结构。Cloneable:表明它具有拷贝能力,可以进行深拷贝或浅拷贝操作。Serializable:表明它
- pythonjson中list操作_Python json.dumps 特殊数据类型的自定义序列化操作
场景描述:Python标准库中的json模块,集成了将数据序列化处理的功能;在使用json.dumps()方法序列化数据时候,如果目标数据中存在datetime数据类型,执行操作时,会抛出异常:TypeError:datetime.datetime(2016,12,10,11,04,21)isnotJSONserializable那么遇到json.dumps序列化不支持的数据类型,该怎么办!首先,
- Unity Netcode自定义数据传输——结构体及其序列化
未来的中科院院士
unity游戏引擎
在UnityNetcode中,要实现自定义数据的网络传输,确实需要两个关键部分:✅两个必需组件:数据结构定义publicstructPlayerState:INetworkSerializable{publicintid;//字段1:玩家IDpublicboolisReady;//字段2:准备状态//...其他字段}作用:定义要传输的数据内容本质:声明"要传输什么"序列化方法实现publicvoi
- 【测试100问】MySQL有哪几种事务隔离级别?
十二测试录
测试100问mysql数据库经验分享职场和发展面试
问:MySQL有哪几种事务隔离级别?十二答:MySQL支持4种级别,从低到高依次为:1.读未提交(READUNCOMMITTED):啥都不解决(脏读、不可重复读、幻读都可能)。2.读已提交(READCOMMITTED):解决脏读。3.可重复读(REPEATABLEREAD):MySQL默认,解决脏读、不可重复读。4.串行化(SERIALIZABLE):解决脏读、不可重复读、幻读(性能最低)。
- 深入理解安卓系统架构与开发技术
本文还有配套的精品资源,点击获取简介:安卓基础知识课程为初学者及进阶开发者提供安卓系统架构、关键开发技术以及最新开发工具的全面介绍。课程涵盖了从系统架构层面的核心概念如HAL、系统库、应用框架、应用程序层,到应用开发的关键组件,包括Dalvik/ART虚拟机、UI设计、Intent通信机制、资源管理、权限系统、进程与线程处理、AndroidStudio/Gradle集成、应用调试与测试,以及And
- MySQL事务隔离级别
Pseudo-lover563
mysql数据库
目录一、MySQL事务的四大隔离级别1、READ-UNCOMMITTED(读取未提交)2、READ-COMMITTED(读取已提交)3、REPEATABLE-READ(可重复读)(MySQL默认)4、SERIALIZABLE(可串行化)二、总结一、MySQL事务的四大隔离级别1、READ-UNCOMMITTED(读取未提交)最低的隔离级别,允许脏读,也就是可能读取到其他会话中未提交事务修改的数据,
- MySQL 锁机制全解析:从表锁到间隙锁,谁都能看懂的知识!
dr李四维
笔记mysql数据库锁死锁乐观锁悲观锁意向锁
目录一、锁的基本概念二、MySQL中的锁类型1.表级锁(TableLock)2.行级锁(RowLock)3.间隙锁(GapLock)4.意向锁(IntentLock)5.乐观锁(OptimisticLock)6.悲观锁(PessimisticLock)7.死锁(Deadlock)8.自增锁(Auto-IncrementLock)9.元数据锁(MetadataLock,MDL)三、锁的对比与选择四、
- Android跳转到通话记录界面,android 用Intent打开系统程序
weixin_39883670
1.打开设置主界面Intentintent=newIntent(android.provider.Settings.ACTION_SETTINGS);//系统设置startActivityForResult(intent,0);2.打开网络设置界面(其他设置中的界面同理)Intentintent=newIntent(android.provider.Settings.ACTION_WIFI_SET
- Android跳转到手机系统各个设置界面的方法及其列表
枸杞泡水
Android-基础知识android手机系统设置
android调用拨号盘拨打电话publicvoiddialPhoneNumber(StringphoneNumber){Intentintent=newIntent(Intent.ACTION_DIAL);intent.setData(Uri.parse("tel:"+phoneNumber));if(intent.resolveActivity(getPackageManager())!=nu
- 第06章_java常用类
假装不痛
javajavajvm开发语言
6.java常用类6.1String类publicclassMain{/*1.概述1.1String:字符串,使用一对""引起来表示1.2String是声明为final的,不可被继承1.3String实现了Serializable接口:表示字符串是支持序列化的实现了Comparable接口:表示String可以比较大小1.4String内部定义了finalchar[]value用于存储字符串数据(
- 基于Redisson的Redis发布订阅传对象[消息队列]
1、实体类实现Serializable接口2、发布消息packagecom.ahies.stm.app.synthesizes.aifind.controller;importcom.ahies.stm.app.synthesizes.aifind.entity.AifindHistory;importcom.ahies.stm.app.util.ResponseResult;importorg.
- GDPU移动应用开发(安卓)期末考试复习资料
第一部分一、选择题应用的基本构建块是:A.ActivityB.FragmentC.ServiceD.Intent答案:A.Activity下列哪个不是AndroidManifest.xml文件的主要用途?A.声明应用权限B.声明应用组件C.定义应用的图标和名称D.编写应用的业务逻辑答案:D.编写应用的业务逻辑在Android中、用于存储持久化数据的SQLite数据库、默认存储在哪个目录下?A./s
- 【Java源码阅读系列19】深度解读Java AtomicReference 源码
·云扬·
源码阅读系列之Javajava开发语言jvm
AtomicReference是Javajava.util.concurrent.atomic包中的核心类之一,用于在多线程环境下实现线程安全的对象引用原子操作。本文将结合JDK8源码,从底层实现、核心方法、设计模式等角度深入解析其原理。一、类定义与核心字段1.类泛型与继承AtomicReference是泛型类(表示引用对象的类型),实现了java.io.Serializable(支持序列化):p
- 【Android知识笔记】ARouter / Navigation / EventBus
川峰
Android知识笔记ARouterNavigationEventBus
注:本文主要基于过去AndroidView体系的路由学习笔记整理,不包括最新的JetpackCompose路由体系,如您需了解关于JetpackCompose中的导航路由,请参考JetpackCompose中的导航路由一文。传统路由方式//显性意图startActivity(newIntent(this,HomeActivity.
- sql server中的with 锁各种区别
吉凶以情迁
java开发语言
SQLServer常用WITH(Hint)用法与组合场景对照表Hint组合作用说明常见用途是否阻塞他人是否读脏数据备注WITH(NOLOCK)不加共享锁,允许读取未提交数据报表导出、大数据分页❌✅等价于READUNCOMMITTED,脏读风险高WITH(HOLDLOCK)保持共享锁直到事务结束(默认读锁是读完就释放)需要防止幻读、读取一致性要求高✅(读锁)❌类似SERIALIZABLE,读一致性好
- Android MVI架构模式详解
追光者、Z
kotlinMVI模式androidandroidkotlin
MVI概念MVI(Model-View-Intent)是一种Android应用架构模式,旨在通过单向数据流和不可变性来简化应用的状态管理。MVI的核心思想是将用户操作、状态更新和界面渲染分离,确保应用的状态可预测且易于调试。MVI的核心组件Model(模型):表示应用的状态。Model是不可变的,通常是一个数据类,包含所有需要展示的信息。例如,一个加载数据的界面可能包含Loading、Succes
- 推荐项目:基于MVI架构的Kotlin应用示例
卓桢琳Blackbird
推荐项目:基于MVI架构的Kotlin应用示例去发现同类优质开源项目:https://gitcode.com/项目介绍该项目是一个精心设计的开源示例,旨在展示如何在Android应用中实施Model-View-Intent(MVI)架构模式。这个代码库是针对MitchTabian的视频课程而创建的,提供了一种清晰且可维护的方式来构建现代Android应用程序。通过观看配套课程或直接探索代码,您将学
- Kotlin中快速实现MVI架构
bubiyoushang888
kotlin开发语言android
MVI(Model-View-Intent)是一种现代的架构模式,广泛应用于Android开发中,以提高代码的可维护性和可测试性。本文将详细介绍如何在Kotlin中快速实现MVI架构,帮助开发者更好地管理应用的状态和交互。一、MVI架构简介MVI架构的核心思想是单向数据流和不可变状态。MVI模式主要包含以下三个部分:Model:表示应用的状态。View:负责展示Model,并接收用户输入。Inte
- 继之前的线程循环加到窗口中运行
3213213333332132
javathreadJFrameJPanel
之前写了有关java线程的循环执行和结束,因为想制作成exe文件,想把执行的效果加到窗口上,所以就结合了JFrame和JPanel写了这个程序,这里直接贴出代码,在窗口上运行的效果下面有附图。
package thread;
import java.awt.Graphics;
import java.text.SimpleDateFormat;
import java.util
- linux 常用命令
BlueSkator
linux命令
1.grep
相信这个命令可以说是大家最常用的命令之一了。尤其是查询生产环境的日志,这个命令绝对是必不可少的。
但之前总是习惯于使用 (grep -n 关键字 文件名 )查出关键字以及该关键字所在的行数,然后再用 (sed -n '100,200p' 文件名),去查出该关键字之后的日志内容。
但其实还有更简便的办法,就是用(grep -B n、-A n、-C n 关键
- php heredoc原文档和nowdoc语法
dcj3sjt126com
PHPheredocnowdoc
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Current To-Do List</title>
</head>
<body>
<?
- overflow的属性
周华华
JavaScript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- 《我所了解的Java》——总体目录
g21121
java
准备用一年左右时间写一个系列的文章《我所了解的Java》,目录及内容会不断完善及调整。
在编写相关内容时难免出现笔误、代码无法执行、名词理解错误等,请大家及时指出,我会第一时间更正。
&n
- [简单]docx4j常用方法小结
53873039oycg
docx
本代码基于docx4j-3.2.0,在office word 2007上测试通过。代码如下:
import java.io.File;
import java.io.FileInputStream;
import ja
- Spring配置学习
云端月影
spring配置
首先来看一个标准的Spring配置文件 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi=&q
- Java新手入门的30个基本概念三
aijuans
java新手java 入门
17.Java中的每一个类都是从Object类扩展而来的。 18.object类中的equal和toString方法。 equal用于测试一个对象是否同另一个对象相等。 toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.(toString 方法是一个很重要的方法) 19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。
- 《2008 IBM Rational 软件开发高峰论坛会议》小记
antonyup_2006
软件测试敏捷开发项目管理IBM活动
我一直想写些总结,用于交流和备忘,然都没提笔,今以一篇参加活动的感受小记开个头,呵呵!
其实参加《2008 IBM Rational 软件开发高峰论坛会议》是9月4号,那天刚好调休.但接着项目颇为忙,所以今天在中秋佳节的假期里整理了下.
参加这次活动是一个朋友给的一个邀请书,才知道有这样的一个活动,虽然现在项目暂时没用到IBM的解决方案,但觉的参与这样一个活动可以拓宽下视野和相关知识.
- PL/SQL的过程编程,异常,声明变量,PL/SQL块
百合不是茶
PL/SQL的过程编程异常PL/SQL块声明变量
PL/SQL;
过程;
符号;
变量;
PL/SQL块;
输出;
异常;
PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言PL/SQL 是对 SQL 的扩展,sql的执行时每次都要写操作
- Mockito(三)--完整功能介绍
bijian1013
持续集成mockito单元测试
mockito官网:http://code.google.com/p/mockito/,打开documentation可以看到官方最新的文档资料。
一.使用mockito验证行为
//首先要import Mockito
import static org.mockito.Mockito.*;
//mo
- 精通Oracle10编程SQL(8)使用复合数据类型
bijian1013
oracle数据库plsql
/*
*使用复合数据类型
*/
--PL/SQL记录
--定义PL/SQL记录
--自定义PL/SQL记录
DECLARE
TYPE emp_record_type IS RECORD(
name emp.ename%TYPE,
salary emp.sal%TYPE,
dno emp.deptno%TYPE
);
emp_
- 【Linux常用命令一】grep命令
bit1129
Linux常用命令
grep命令格式
grep [option] pattern [file-list]
grep命令用于在指定的文件(一个或者多个,file-list)中查找包含模式串(pattern)的行,[option]用于控制grep命令的查找方式。
pattern可以是普通字符串,也可以是正则表达式,当查找的字符串包含正则表达式字符或者特
- mybatis3入门学习笔记
白糖_
sqlibatisqqjdbc配置管理
MyBatis 的前身就是iBatis,是一个数据持久层(ORM)框架。 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis对JDBC进行了一次很浅的封装。
以前也学过iBatis,因为MyBatis是iBatis的升级版本,最初以为改动应该不大,实际结果是MyBatis对配置文件进行了一些大的改动,使整个框架更加方便人性化。
- Linux 命令神器:lsof 入门
ronin47
lsof
lsof是系统管理/安全的尤伯工具。我大多数时候用它来从系统获得与网络连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。而有一点要切记,在Unix中一切(包括网络套接口)都是文件。
有趣的是,lsof也是有着最多
- java实现两个大数相加,可能存在溢出。
bylijinnan
java实现
import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class BigIntegerAddition {
/**
* 题目:java实现两个大数相加,可能存在溢出。
* 如123456789 + 987654321
- Kettle学习资料分享,附大神用Kettle的一套流程完成对整个数据库迁移方法
Kai_Ge
Kettle
Kettle学习资料分享
Kettle 3.2 使用说明书
目录
概述..........................................................................................................................................7
1.Kettle 资源库管
- [货币与金融]钢之炼金术士
comsci
金融
自古以来,都有一些人在从事炼金术的工作.........但是很少有成功的
那么随着人类在理论物理和工程物理上面取得的一些突破性进展......
炼金术这个古老
- Toast原来也可以多样化
dai_lm
androidtoast
Style 1: 默认
Toast def = Toast.makeText(this, "default", Toast.LENGTH_SHORT);
def.show();
Style 2: 顶部显示
Toast top = Toast.makeText(this, "top", Toast.LENGTH_SHORT);
t
- java数据计算的几种解决方法3
datamachine
javahadoopibatisr-languer
4、iBatis
简单敏捷因此强大的数据计算层。和Hibernate不同,它鼓励写SQL,所以学习成本最低。同时它用最小的代价实现了计算脚本和JAVA代码的解耦,只用20%的代价就实现了hibernate 80%的功能,没实现的20%是计算脚本和数据库的解耦。
复杂计算环境是它的弱项,比如:分布式计算、复杂计算、非数据
- 向网页中插入透明Flash的方法和技巧
dcj3sjt126com
htmlWebFlash
将
Flash 作品插入网页的时候,我们有时候会需要将它设为透明,有时候我们需要在Flash的背面插入一些漂亮的图片,搭配出漂亮的效果……下面我们介绍一些将Flash插入网页中的一些透明的设置技巧。
一、Swf透明、无坐标控制 首先教大家最简单的插入Flash的代码,透明,无坐标控制: 注意wmode="transparent"是控制Flash是否透明
- ios UICollectionView的使用
dcj3sjt126com
UICollectionView的使用有两种方法,一种是继承UICollectionViewController,这个Controller会自带一个UICollectionView;另外一种是作为一个视图放在普通的UIViewController里面。
个人更喜欢第二种。下面采用第二种方式简单介绍一下UICollectionView的使用。
1.UIViewController实现委托,代码如
- Eos平台java公共逻辑
蕃薯耀
Eos平台java公共逻辑Eos平台java公共逻辑
Eos平台java公共逻辑
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月1日 17:20:4
- SpringMVC4零配置--Web上下文配置【MvcConfig】
hanqunfeng
springmvc4
与SpringSecurity的配置类似,spring同样为我们提供了一个实现类WebMvcConfigurationSupport和一个注解@EnableWebMvc以帮助我们减少bean的声明。
applicationContext-MvcConfig.xml
<!-- 启用注解,并定义组件查找规则 ,mvc层只负责扫描@Controller -->
<
- 解决ie和其他浏览器poi下载excel文件名乱码
jackyrong
Excel
使用poi,做传统的excel导出,然后想在浏览器中,让用户选择另存为,保存用户下载的xls文件,这个时候,可能的是在ie下出现乱码(ie,9,10,11),但在firefox,chrome下没乱码,
因此必须综合判断,编写一个工具类:
/**
*
* @Title: pro
- 挥洒泪水的青春
lampcy
编程生活程序员
2015年2月28日,我辞职了,离开了相处一年的触控,转过身--挥洒掉泪水,毅然来到了兄弟连,背负着许多的不解、质疑——”你一个零基础、脑子又不聪明的人,还敢跨行业,选择Unity3D?“,”真是不自量力••••••“,”真是初生牛犊不怕虎•••••“,••••••我只是淡淡一笑,拎着行李----坐上了通向挥洒泪水的青春之地——兄弟连!
这就是我青春的分割线,不后悔,只会去用泪水浇灌——已经来到
- 稳增长之中国股市两点意见-----严控做空,建立涨跌停版停牌重组机制
nannan408
对于股市,我们国家的监管还是有点拼的,但始终拼不过飞流直下的恐慌,为什么呢?
笔者首先支持股市的监管。对于股市越管越荡的现象,笔者认为首先是做空力量超过了股市自身的升力,并且对于跌停停牌重组的快速反应还没建立好,上市公司对于股价下跌没有很好的利好支撑。
我们来看美国和香港是怎么应对股灾的。美国是靠禁止重要股票做空,在
- 动态设置iframe高度(iframe高度自适应)
Rainbow702
JavaScriptiframecontentDocument高度自适应局部刷新
如果需要对画面中的部分区域作局部刷新,大家可能都会想到使用ajax。
但有些情况下,须使用在页面中嵌入一个iframe来作局部刷新。
对于使用iframe的情况,发现有一个问题,就是iframe中的页面的高度可能会很高,但是外面页面并不会被iframe内部页面给撑开,如下面的结构:
<div id="content">
<div id=&quo
- 用Rapael做图表
tntxia
rap
function drawReport(paper,attr,data){
var width = attr.width;
var height = attr.height;
var max = 0;
&nbs
- HTML5 bootstrap2网页兼容(支持IE10以下)
xiaoluode
html5bootstrap
<!DOCTYPE html>
<html>
<head lang="zh-CN">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">