- JMeter-常用断言方式
无量是空
JMeterjmeter
一、响应断言二、JSON断言1.JSON断言所在位置:断言->JSON断言2.JSON断言中的字段解析AssertJSONPathexists:json表达式,判断所字段是否存在,存在则为True,否则为FalseAdditionallyassertvalue:附加断言字段对应的值,匹配则为True,否则为FalseMatchasregularexpression:断言表达式,判断字段是否存在,存
- 车载以太网都有什么协议?
天赐好车
车载以太网车载以太网
目录一、物理层协议(PhysicalLayer)二、数据链路层协议(DataLinkLayer)三、网络层协议(NetworkLayer)四、传输层协议(TransportLayer)五、应用层协议(ApplicationLayer)六、车载网络融合协议七、标准化组织八、协议分层总结表九、趋势与未来协议车载以太网涉及的协议众多,覆盖物理层、数据链路层、网络层、传输层及应用层,形成完整的协议栈体系。
- java导出highcharts_命令行导出 | Highcharts 使用教程
德川家康薛定谔
对于需要自动生成图表、纯后端生成图表图片、批量生成图表的情况,Nodejs导出服务器可以满足这些需求。一、安装Nodejs导出服务器请参考搭建导出服务器进行安装,简单来说有两种安装方式1、直接安装npm包npminstallhighcharts-export-server-g2、源代码安装gitclonehttps://github.com/highcharts/node-export-serve
- 3.代码格式化处理--prettier
菜鸟也要未来
前端java
prettierprettier是一个代码格式工具,他能美化我们的写代码1.安装prettierpnpminstall-Deslint-plugin-prettierprettiereslint-config-prettier3.创建prettier.config.cjsprettier.config.cjs是进行代码风格配置文件,可以在里面添加如下内容module.exports={//每行最大
- C#调用Matlab生成的dll
Jon_0001
c#matlab算法
详细介绍了C#调用Matlab生成的dll方法,有需要的朋友可以参考一下其实整个过程比较简单,但是需要心细一点。需要的工具:VS2005及以上版本,MATLAB2008B及以上版本,另外非常重要的需要安装一个MATLABCompilerRuntime,这个文件(MCRInstall.exe)在安装完MATLAB之后就会在安装文件夹下存在,需要搜索一下(因为不同版本的MATLAB可能存放位置不同),
- C#生成DLL给C语言调用的例子
caimouse
C#入门到精通c#c语言
usingSystem;usingSystem.Runtime.InteropServices;namespaceCSharpDll{publicclassMathOperations{//使用DllExport特性导出函数,采用Cdecl调用约定[DllExport("Add",CallingConvention=CallingConvention.Cdecl)]publicstaticintA
- android号码查询归属地,号码归属地识别-Android电话应用
倾城落雪
android号码查询归属地
题记自研的电话应用中,有两处使用了号码归属地,一处是通话记录页,一处是通话界面;那么它们是如何实现的呢?下面进行一步一步的分析。Dialer使用号码归属地通话记录页的号码归属地通过查询calls表中的Calls.GEOCODED_LOCATION字段,来进行获取号码的归属地。相关代码如下:查询:startQuery(token,null,uri,CallLogQuery._PROJECTION,s
- Vitest mock modules function in only one test and use the actual function in others
营赢盈英
前端技术前端javascript开发语言nuxt.jsvitestunit-testing
题意:将Vitest的模块函数仅在一个测试中进行mock,其余测试中使用实际函数。问题背景:Thefollowingisanabstractionofmyproblemandthusdoesnotmaketoomuchsense:以下是我问题的抽象,因此并没有太多意义。GivenIhaveasimpleutilitycallMethodIfthat'sreturningthereturnofano
- 服务器如何配置防火墙规则开放/关闭端口?
莱卡云(Lcayun)
服务器云计算linux安全
配置服务器防火墙规则(开放/关闭端口)是服务器安全管理的基础操作,不同操作系统和防火墙工具的配置方式有所不同。以下是主流系统的详细操作指南:一、Linux系统(iptables/firewalld/UFW)1.iptables(传统方式)#查看当前规则sudoiptables-L-n#开放端口(如80/TCP)sudoiptables-AINPUT-ptcp--dport80-jACCEPT#关闭
- 如何使用RViz进行机器人路径规划的可视化?
start_up_go
机器人与ros系统应用rvizrviz可视化
一、环境准备安装ROS与相关功能包#以ROS2Humble为例sudoaptinstallros-humble-navigation2ros-humble-nav2-bringup准备机器人模型(URDF/XACRO)确保已定义机器人的URDF模型,包含传感器和关节信息。配置导航参数创建导航参数文件(如nav2_params.yaml),设置地图、代价地图、规划器等参数。二、启动导航系统与RViz
- Java异常处理
hie98894
java
Java作为一门面向对象的编程语言,其异常处理机制是每个开发者都必须掌握的核心知识之一。异常处理不仅仅是编程技巧的一部分,更是编写高质量、可维护代码的基础。首先,我们来看看Java中异常的基本概念。在Java中,异常是程序运行过程中发生的事件,它打断了正常的指令流。为了处理这些异常,Java提供了一套完善的异常处理框架,包括try、catch、finally关键字以及throw和throws子句。
- 【ubuntu】如何构建自己的ubuntu内核
1.准备环境sudoaptupdatesudoaptinstallbuild-essentialfakerootdpkg-devkernel-packagelibncurses-devbisonflexlibssl-devlibelf-dev2.下载内核源码确认源码包,下载源码包。dpkg-S/boot/vmlinuz-$(uname-r)linux-image-5.15.0-46-generic
- Linux安装Python失败常见缺失依赖项
xcosy
Pythonpython
1._ctypes模块构建失败buildcorrectlybutfinishedwiththismessage:Failedtobuildthesemodules:_ctypes解决AreyouusingUbuntuorotherLinuxdistribution?Thisproblemisbecauseyoudidn’tinstallthedependencypackage.Youmayfirs
- React 强大的表单验证库formik之集成Yup、React Hook Form库
伍哥的传说
前端源码分享react.js前端前端框架
简介Formik是为React开发的开源表单库,提供状态管理、验证和提交处理功能,可简化复杂表单的开发。核心优势-状态管理:自动跟踪输入值、验证状态和提交进度,无需手动编写状态逻辑。-验证功能:支持声明式验证规则(如字段类型、长度限制、异步验证),实时反馈错误信息。-集成能力:可与Yup(验证)、ReactHookForm(表单钩子)等库组合使用,扩展功能。安装npminstall
- Linux多线程(十五)之【封装原生线程】
好名字更能让你们记住我
linux运维服务器jvmcentosc++ubuntu
文章目录封装原生线程封装原生线程Thread.hpp#pragmaonce#include#include#include#include#includeusingnamespacestd;typedefvoid(*callback_t)();staticintnum=1;classThread{public:staticvoid*Routine(void*args){Thread*t=stati
- vue根据链接生成二维码 qrcode
youyu-youyu
vue.jsjavascriptecmascript
vue根据链接生成二维码qrcodejs需求:后端返回一个完整链接,前端根据链接生成一个二维码1、安装qrcode插件npminstallqrcode2、引入qrcode,并且使用完整代码importQRCodefrom'qrcode';//引入生成二维码插件exportdefault{data(){const_this=this;return{qrcodeData:'',optionsObj:{
- python、pytest、requests、yaml、allure接口自动化测试
OY-xin
零代码pytest测试框架pytestpython自动化单元测试
接口自动化需要解决的九大问题1、用例的顺序(点击这里)在接口自动化测试中,测试用例的执行顺序非常重要,尤其是当接口之间存在依赖关系时。例如,某些接口的执行需要依赖其他接口先返回正确的结果。因此,合理的用例顺序可以避免测试结果的不准确或失败。通常可以通过代码中的执行逻辑或测试框架的配置来控制用例的顺序。2、用例之间的接口关联(点击这里)接口之间可能存在着复杂的依赖关系。例如,创建用户接口需要先调用登
- React-cli安装
abytecoder
react.jsjavascriptecmascript
react-cli安装ReactCLI是一个用于创建React应用的命令行工具。要安装它,你需要先安装Node.js和npm(Node包管理器)。然后运行以下命令:npminstall-gcreate-react-app这条命令会全局安装create-react-app工具,使你能够通过它快速创建新的React应用。安装完成后,你可以使用以下命令创建一个新的React应用:create-react
- 【记录】Ubuntu安装Mysql
qq_29750461
ubuntulinux运维
本文记录Ubuntu系统下安装Mysql1查看系统信息lsb_release-a2使用apt下载安装Mysql1打开终端,首先更新你的系统包索引,以确保所有包都是最新的sudoaptupdate2安装mysql服务器sudoaptinstallmysql-server(也可以选择对应的mysql-server版本)3查看mysql状态安装完成后sudosystemctlstartmysql//开启
- Python获取NTP时间
OneT1me
python开发语言
使用ntplib库,没有的话需要先安装pipinstallntplib然后使用下面的代码获取时间importntplibfromtimeimportctimeclient=ntplib.NTPClient()try:response=client.request('ntp.ntsc.ac.cn')#解析NTP时间戳ntp_time=response.tx_time#将时间戳转换为可读格式reada
- WebFuture:在银河麒麟系统将TCP80端口流量转发到本机TCP8080端口
bbsh2099
服务器网络运维WebFuture
问题描述:在银河麒麟系统,将TCP80端口流量转发到本机TCP8080端口解决方案:firewall-cmd--permanent--zone=public--add-forward-port=port=80:proto=tcp:toport=8080#永久性地在public区域中添加端口转发规则,将所有进入TCP80端口的流量转发到8080端口。firewall-cmd--reload#重新加载
- 提交git时包含超过200M文件时git报错
狗八先生~~
git
今天上传git的时候遇到一个文件过大无法上传的情况解决方案,使用GitLFS管理大文件GitLFS能够把大文件存到远程服务器,在仓库里仅保留轻量级的指针。GX@DESKTOP-U8BCJOEMINGW64/e/...gx/code/UnmannedVehiclePro(master)$gitlfsinstallUpdatedGithooks.GitLFSinitialized.GX@DESKTOP
- python内置函数range(a、b、s)的作用_python中,内置函数range(a,b,s)的作用是产生一个整数序列,从a到b....
苍穹雲嵐
bs)的作用
python中,内置函数range(a,b,s)的作用是产生一个整数序列,从a到b.答:错在生物性污染中范围最广、危害最大的污染是微生物的污染。(?)答:对中国大学MOOC:Whichofthefollowingstrategiesdoesthemanusetodealwiththedifficultsecurityguard?答:fightingbackandcoolingdownfinally
- python数据分析scipy库安装与使用
范哥来了
python数据分析scipy
安装scipy库scipy是一个用于科学计算的Python库,它依赖于numpy。如果你还没有安装scipy,可以使用以下命令来安装:pipinstallscipy或者,如果你使用的是Anaconda环境,可以通过conda来安装:condainstallscipy使用scipy库scipy提供了许多用于科学计算的功能,包括统计、优化、积分、线性代数等。下面是一些常见的用法示例。1.导入scipy
- git超过10MB的文件push失败怎么解决
m0_53365315
git
#1.确保已安装并初始化LFSgitlfsinstall#2.扫描出所有>10M的文件,并一一trackfindfilesForAndroid-typef-size+10M-print0\|xargs-0-n1gitlfstrack#3.提交更新后的.gitattributesgitadd.gitattributesgitcommit-m"chore:LFS-trackall>10Mfilesun
- SciPy 安装使用教程
小奇JAVA面试
安装使用教程scipy
一、SciPy简介SciPy(ScientificPython)是基于NumPy的开源科学计算库,提供了数值积分、优化、信号处理、线性代数、统计分析等高级科学计算功能。它是构建Python科学计算生态系统的核心组件之一,常用于科研、工程、数据分析等领域。二、安装SciPy2.1使用pip安装(推荐)pipinstallscipy2.2使用Anaconda安装(科学计算推荐)condainstall
- Linux
Linux基础Linux基础防火墙命令iptables防火墙firewalld防火墙介绍selinux常用命令集锦文件目录命令查看文件及目录文件浏览文件操作文档编辑管道|grep命令磁盘命令备份压缩文件权限网络配置rpm包管理demoLinux基础防火墙命令注意:在centos6和centos7中,命令上的区别1.防火墙:6是iptables,7是firewalld2.启动服务的命令:6是serv
- MySQL 8.0 OCP 1Z0-908 题目解析(19)
一只fish
MYSQLOCPmysql数据库
题目73Choosetwo.WhichtwoarefeaturesofMySQLEnterpriseFirewall?□A)blockingofpotentialthreatsbyconfiguringpre-approvedwhitelists□B)modifyingSQLstatementdynamicallywithsubstitutions□C)recordingincomingSQLst
- nuxt2 项目构建发布流程(运维版)
nuxt2项目构建发布流程(运维版)目录环境准备代码获取本地构建服务端部署1.环境准备1.1安装Node.js下载地址https://nodejs.org/zh-cn/blog/release/v14.15.3查看是否安装成功node-v查看npm版本npm-v2.代码获取git地址http://xxxxxxx3.本地构建3.1依赖安装cd./ezca-mall-web-portal#使用淘宝镜像
- php 魔术常量、魔术函数 和 $_SERVER变量
戴国进
#php笔试面试题
魔术常量__FILE__$_SERVER['SCRIPT_FILENAME']反映的是当前执行程序的绝对路径及文件名;__FILE__反映的是原始文件(被包含文件)的绝对路径及文件名。__LINE____CLASS____FUNCTION____METHOD__魔术函数__autoLoad()__clone()__toString()__GET()__SET()__CALL()//当对象访问不存在
- 统一思想认识
永夜-极光
思想
1.统一思想认识的基础,才能有的放矢
原因:
总有一种描述事物的方式最贴近本质,最容易让人理解.
如何让教育更轻松,在于找到最适合学生的方式.
难点在于,如何模拟对方的思维基础选择合适的方式. &
- Joda Time使用笔记
bylijinnan
javajoda time
Joda Time的介绍可以参考这篇文章:
http://www.ibm.com/developerworks/cn/java/j-jodatime.html
工作中也常常用到Joda Time,为了避免每次使用都查API,记录一下常用的用法:
/**
* DateTime变化(增减)
*/
@Tes
- FileUtils API
eksliang
FileUtilsFileUtils API
转载请出自出处:http://eksliang.iteye.com/blog/2217374 一、概述
这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。
- 各种新兴技术
不懂事的小屁孩
技术
1:gradle Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。
现在构建系统常用到maven工具,现在有更容易上手的gradle,
搭建java环境:
http://www.ibm.com/developerworks/cn/opensource/os-cn-gradle/
搭建android环境:
http://m
- tomcat6的https双向认证
酷的飞上天空
tomcat6
1.生成服务器端证书
keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn" -alias server -keypass password -keystore server.jks -storepass password -validity 36
- 托管虚拟桌面市场势不可挡
蓝儿唯美
用户还需要冗余的数据中心,dinCloud的高级副总裁兼首席营销官Ali Din指出。该公司转售一个MSP可以让用户登录并管理和提供服务的用于DaaS的云自动化控制台,提供服务或者MSP也可以自己来控制。
在某些情况下,MSP会在dinCloud的云服务上进行服务分层,如监控和补丁管理。
MSP的利润空间将根据其参与的程度而有所不同,Din说。
“我们有一些合作伙伴负责将我们推荐给客户作为个
- spring学习——xml文件的配置
a-john
spring
在Spring的学习中,对于其xml文件的配置是必不可少的。在Spring的多种装配Bean的方式中,采用XML配置也是最常见的。以下是一个简单的XML配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.or
- HDU 4342 History repeat itself 模拟
aijuans
模拟
来源:http://acm.hdu.edu.cn/showproblem.php?pid=4342
题意:首先让求第几个非平方数,然后求从1到该数之间的每个sqrt(i)的下取整的和。
思路:一个简单的模拟题目,但是由于数据范围大,需要用__int64。我们可以首先把平方数筛选出来,假如让求第n个非平方数的话,看n前面有多少个平方数,假设有x个,则第n个非平方数就是n+x。注意两种特殊情况,即
- java中最常用jar包的用途
asia007
java
java中最常用jar包的用途
jar包用途axis.jarSOAP引擎包commons-discovery-0.2.jar用来发现、查找和实现可插入式接口,提供一些一般类实例化、单件的生命周期管理的常用方法.jaxrpc.jarAxis运行所需要的组件包saaj.jar创建到端点的点到点连接的方法、创建并处理SOAP消息和附件的方法,以及接收和处理SOAP错误的方法. w
- ajax获取Struts框架中的json编码异常和Struts中的主控制器异常的解决办法
百合不是茶
jsjson编码返回异常
一:ajax获取自定义Struts框架中的json编码 出现以下 问题:
1,强制flush输出 json编码打印在首页
2, 不强制flush js会解析json 打印出来的是错误的jsp页面 却没有跳转到错误页面
3, ajax中的dataType的json 改为text 会
- JUnit使用的设计模式
bijian1013
java设计模式JUnit
JUnit源代码涉及使用了大量设计模式
1、模板方法模式(Template Method)
定义一个操作中的算法骨架,而将一些步骤延伸到子类中去,使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。这里需要复用的是算法的结构,也就是步骤,而步骤的实现可以在子类中完成。
 
- Linux常用命令(摘录)
sunjing
crondchkconfig
chkconfig --list 查看linux所有服务
chkconfig --add servicename 添加linux服务
netstat -apn | grep 8080 查看端口占用
env 查看所有环境变量
echo $JAVA_HOME 查看JAVA_HOME环境变量
安装编译器
yum install -y gcc
- 【Hadoop一】Hadoop伪集群环境搭建
bit1129
hadoop
结合网上多份文档,不断反复的修正hadoop启动和运行过程中出现的问题,终于把Hadoop2.5.2伪分布式安装起来,跑通了wordcount例子。Hadoop的安装复杂性的体现之一是,Hadoop的安装文档非常多,但是能一个文档走下来的少之又少,尤其是Hadoop不同版本的配置差异非常的大。Hadoop2.5.2于前两天发布,但是它的配置跟2.5.0,2.5.1没有分别。 &nb
- Anychart图表系列五之事件监听
白糖_
chart
创建图表事件监听非常简单:首先是通过addEventListener('监听类型',js监听方法)添加事件监听,然后在js监听方法中定义具体监听逻辑。
以钻取操作为例,当用户点击图表某一个point的时候弹出point的name和value,代码如下:
<script>
//创建AnyChart
var chart = new AnyChart();
//添加钻取操作&quo
- Web前端相关段子
braveCS
web前端
Web标准:结构、样式和行为分离
使用语义化标签
0)标签的语义:使用有良好语义的标签,能够很好地实现自我解释,方便搜索引擎理解网页结构,抓取重要内容。去样式后也会根据浏览器的默认样式很好的组织网页内容,具有很好的可读性,从而实现对特殊终端的兼容。
1)div和span是没有语义的:只是分别用作块级元素和行内元素的区域分隔符。当页面内标签无法满足设计需求时,才会适当添加div
- 编程之美-24点游戏
bylijinnan
编程之美
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
public class PointGame {
/**编程之美
- 主页面子页面传值总结
chengxuyuancsdn
总结
1、showModalDialog
returnValue是javascript中html的window对象的属性,目的是返回窗口值,当用window.showModalDialog函数打开一个IE的模式窗口时,用于返回窗口的值
主界面
var sonValue=window.showModalDialog("son.jsp");
子界面
window.retu
- [网络与经济]互联网+的含义
comsci
互联网+
互联网+后面是一个人的名字 = 网络控制系统
互联网+你的名字 = 网络个人数据库
每日提示:如果人觉得不舒服,千万不要外出到处走动,就呆在床上,玩玩手游,更不能够去开车,现在交通状况不
- oracle 创建视图 with check option
daizj
视图vieworalce
我们来看下面的例子:
create or replace view testview
as
select empno,ename from emp where ename like ‘M%’
with check option;
这里我们创建了一个视图,并使用了with check option来限制了视图。 然后我们来看一下视图包含的结果:
select * from testv
- ToastPlugin插件在cordova3.3下使用
dibov
Cordova
自己开发的Todos应用,想实现“
再按一次返回键退出程序 ”的功能,采用网上的ToastPlugins插件,发现代码或文章基本都是老版本,运行问题比较多。折腾了好久才弄好。下面吧基于cordova3.3下的ToastPlugins相关代码共享。
ToastPlugin.java
package&nbs
- C语言22个系统函数
dcj3sjt126com
cfunction
C语言系统函数一、数学函数下列函数存放在math.h头文件中Double floor(double num) 求出不大于num的最大数。Double fmod(x, y) 求整数x/y的余数。Double frexp(num, exp); double num; int *exp; 将num分为数字部分(尾数)x和 以2位的指数部分n,即num=x*2n,指数n存放在exp指向的变量中,返回x。D
- 开发一个类的流程
dcj3sjt126com
开发
本人近日根据自己的开发经验总结了一个类的开发流程。这个流程适用于单独开发的构件,并不适用于对一个项目中的系统对象开发。开发出的类可以存入私人类库,供以后复用。
以下是开发流程:
1. 明确类的功能,抽象出类的大概结构
2. 初步设想类的接口
3. 类名设计(驼峰式命名)
4. 属性设置(权限设置)
判断某些变量是否有必要作为成员属
- java 并发
shuizhaosi888
java 并发
能够写出高伸缩性的并发是一门艺术
在JAVA SE5中新增了3个包
java.util.concurrent
java.util.concurrent.atomic
java.util.concurrent.locks
在java的内存模型中,类的实例字段、静态字段和构成数组的对象元素都会被多个线程所共享,局部变量与方法参数都是线程私有的,不会被共享。
- Spring Security(11)——匿名认证
234390216
Spring SecurityROLE_ANNOYMOUS匿名
匿名认证
目录
1.1 配置
1.2 AuthenticationTrustResolver
对于匿名访问的用户,Spring Security支持为其建立一个匿名的AnonymousAuthenticat
- NODEJS项目实践0.2[ express,ajax通信...]
逐行分析JS源代码
Ajaxnodejsexpress
一、前言
通过上节学习,我们已经 ubuntu系统搭建了一个可以访问的nodejs系统,并做了nginx转发。本节原要做web端服务 及 mongodb的存取,但写着写着,web端就
- 在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值
lhbthanks
javahtmlstrutscheckbox
第一种方法:获取结果String类型
在 Action 中获得的是一个 String 型数据,每一个被选中的 checkbox 的 value 被拼接在一起,每个值之间以逗号隔开(,)。
所以在 Action 中定义一个跟 checkbox 的 name 同名的属性来接收这些被选中的 checkbox 的 value 即可。
以下是实现的代码:
前台 HTML 代码:
- 003.Kafka基本概念
nweiren
hadoopkafka
Kafka基本概念:Topic、Partition、Message、Producer、Broker、Consumer。 Topic: 消息源(Message)的分类。 Partition: Topic物理上的分组,一
- Linux环境下安装JDK
roadrunners
jdklinux
1、准备工作
创建JDK的安装目录:
mkdir -p /usr/java/
下载JDK,找到适合自己系统的JDK版本进行下载:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
把JDK安装包下载到/usr/java/目录,然后进行解压:
tar -zxvf jre-7
- Linux忘记root密码的解决思路
tomcat_oracle
linux
1:使用同版本的linux启动系统,chroot到忘记密码的根分区passwd改密码 2:grub启动菜单中加入init=/bin/bash进入系统,不过这时挂载的是只读分区。根据系统的分区情况进一步判断. 3: grub启动菜单中加入 single以单用户进入系统. 4:用以上方法mount到根分区把/etc/passwd中的root密码去除 例如: ro
- 跨浏览器 HTML5 postMessage 方法以及 message 事件模拟实现
xueyou
jsonpjquery框架UIhtml5
postMessage 是 HTML5 新方法,它可以实现跨域窗口之间通讯。到目前为止,只有 IE8+, Firefox 3, Opera 9, Chrome 3和 Safari 4 支持,而本篇文章主要讲述 postMessage 方法与 message 事件跨浏览器实现。postMessage 方法 JSONP 技术不一样,前者是前端擅长跨域文档数据即时通讯,后者擅长针对跨域服务端数据通讯,p