代码实现:QSqlDatabasem_db=QSqlDatabase::addDatabase("SQLITECIPHER");//必须使用对应的驱动qDebug()<
open3d python 分割多个平面
黄晓魚
halcon3dPCL点云处理深度神经网络点云处理PCL库Open3D库Point++模型使用平面算法open3dpython
测试效果废话在Open3D中,detect_planar_patches方法用于从点云数据中检测平面区域(或称为平面补丁)。这个方法通过分析点云中各点之间的法线向量和方向性来识别具有相似法线向量的点群,从而识别出潜在的平面区域。下面是对你给出的代码行中各个参数的解释:normal_variance_threshold_deg:法线向量方差阈值(以度为单位)。这个参数设定了允许的点云中法线向量方向变
Linux Ubuntu设置ollama保存模型的路径和设置监听端口
3333333_
大模型Linuxlinux学习人工智能大模型
下载模型之前可以修改下模型默认保存路径。设置ollama保存模型的路径和监听端口sudomkdir/path/to/ollama/modelssudochown-R777/path/to/ollama/modelssudovi/etc/systemd/system/ollama.service在[Service]下面添加相应的环境变量Environment,包括OLLAMA_HOST和OLLAMA
保姆级教学 uniapp绘制二维码海报并保存至相册,真机正常展示图片二维码
前端(从入门到入土)
uni-app
一、获取二维码uni.request({url:`https://api.weixin.qq.com/wxa/getwxacode?access_token=${getStorage("token")}`,responseType:"arraybuffer",method:"POST",data:{path:"/pages/index/index"},success(res){//转换为Uint8
C#——INI文件操作
Vector_LW
CSharp
usingSystem;usingSystem.Text;usingSystem.IO;usingSystem.Runtime.InteropServices;usingSystem.Collections.Generic;publicclassOperateIniFile{privatestaticStringfilePath="";#regionAPI函数声明[DllImport("kerne
【设计模式】 建造者模式和原型模式
wy02_
设计模式建造者模式原型模式
建造者模式(BuilderPattern)概述建造者模式是一种创建型设计模式,它允许逐步构建复杂对象。通过将构造过程与表示分离,使得同样的构建过程可以创建不同的表示。这种模式非常适合用于创建那些具有很多属性的对象,尤其是当有些属性是可选的时候。优点可以控制一个产品的创建过程。提供代码的复用性。支持变化:可以在不修改已有代码的情况下,对构建过程进行扩展或修改。实现示例//产品类classCar{pr
python小白的word转excel
W~J~L
pythonpython
大概流程为:一、首先导入docx库以及xlwt库二、需要用到的文档的名称三、设置一个函数来写入excel,转为可识别通用的“utf8”,然后创建一个表格来将文档里的内容写入到表里去四、利用for循坏来设置表里多少个为一行五、在最后设置表的保存路径以及提示是否创建成功importdocximportxlwtdocFile="青年大学习.docx"defwrite_excel(path):doc=do
springboot 上传图片 转存成webp
键盘侠007
springbootokhttpandroid
第一步先引入包org.sejda.imageiowebp-imageio0.1.6下面就是上传的时候处理的了/***通用上传请求(单个)*/@PostMapping("/upload")publicAjaxResultuploadFile(MultipartFilefile)throwsException{try{//上传文件路径StringfilePath=RuoYiConfig.getUplo
thinkphp引入阿里云视频点播
瑆箫
php开发语言
1.需要用到的sdk文件:阿里云视频点播接口+php技术-PHP文档类资源-CSDN下载2.方法:将解压的压缩包放到extend文件夹下面3.可以写个公共方法放到common.php4.引入sdk文件:require_oncestr_replace('\\','/',EXTEND_PATH).'alivod/aliyun-php-sdk-core/Config.php';usevod\Reques
DockerFile实战测试
johnmand
centoslinux运维
创建一个自己的centos1.编写dockerfile的文件[root@localhostdockerfile]#catmydockerfileFROMcentosMAINTAINERgaoleENVMYPATH/usr/localWORKDIR$MYPATH#一开始的时候这里写错了,没有写$,所有进去以后到了/MYPATH的路径RUNyum-yinstallvimRUNyum-yinstalln
设计模式3:代理、适配器、装饰器模式
设计模式
代理模式(ProxyPattern)代理模式的本质是⼀个中间件,主要⽬的是解耦合服务提供者和使⽤者。使⽤者通过代理间接访问服务提供者,便于后者的封装和控制。是⼀种结构型设计模式。静态代理和动态代理区别静态代理:编译时生成代理类,需要手动编写代理逻辑,代理类和目标类实现同一接口。动态代理:运行时生成代理类,通过反射机制动态创建代理对象,无需手动编写代理类。如JDK的Proxy类,或CGLIB动态代理
Nodejs-RESTFul架构
weixin_33724659
json
请求方法一般会严格要求请求方法及其释义,下面给出常用的请求方法如果请求头中存在X-HTTP-Method-Override或参数中存在_method(拥有更高权重),且值为GET,POST,PUT,DELETE,PATCH,OPTION,HEAD之一,则视作相应的请求方式进行处理GET,DELETE,HEAD方法,参数风格为标准的GET风格的参数,如url?a=1&b=2POST,PUT,PATC
IDA pro 的Python环境变量设置
weixin_30291791
python
推荐使用IDAPRO6.1+Python2.6安装完毕Python2.6后,添加如下的环境变量:PYTHONHOME=C:\Python26PATH=%PATH%;C:\Python26LIB=%LIB%;C:\Python26\Lib转载于:https://www.cnblogs.com/micro-chen/p/4770303.html
【MySQL】MySQL函数之JSON_EXTRACT
m0_74824025
面试学习路线阿里巴巴mysqljsonandroid
在MySQL中,JSON_EXTRACT()函数用于从JSON文档中提取一个或多个值。这个函数非常有用,特别是在处理存储在JSON格式中的复杂数据时。下面是一些关于如何使用JSON_EXTRACT()的详细说明和示例。基本语法JSON_EXTRACT(json_doc,path[,path]...)json_doc:要从中提取值的JSON文档。path:一个或多个路径表达式,用于指定要提取的值的位
MATLAB中count函数用法
jk_101
Matlabmatlab开发语言
目录语法说明示例对出现次数计数使用模式对数字和字母进行计数多个子字符串的所有出现次数忽略大小写对字符向量中的子字符串进行计数count函数的功能是计算字符串中模式的出现次数。语法A=count(str,pat)A=count(str,pat,'IgnoreCase',true)说明A=count(str,pat)返回pat在str中的出现次数。如果pat是包含多个模式的数组,则count返回pat
图的存储结构:邻接矩阵和邻接表
Lee Neo
#数据结构数据结构
图graph顶点vertex弧arc弧尾tail弧头head有向图digraph边edge无向图undigraph权weight网network邻接点adjacent依附incident度degree出度OutDegree入度Indegree路径path邻接矩阵adjacencymatrix一、邻接矩阵存储(数组表示)借助矩阵(二维数组)表示元素(图的任意两个顶点)之间的关系用一维数组(顶点表)存
JavaScript设计模式 -- 状态模式
鎈卟誃筅甡
javascript设计模式状态模式
在软件开发中,很多对象的行为会随着其内部状态的变化而改变。如果将所有状态逻辑写在一个类中,代码不仅臃肿而且难以维护。**状态模式(StatePattern)**正是为了解决这个问题而设计的。通过将对象的状态封装成独立的状态类,并将状态相关的行为转移到这些状态类中,状态模式让对象在内部状态发生变化时自动切换行为,达到了将状态转换与行为实现分离的目的。本文将详细介绍状态模式的核心思想、基本结构与优缺点
conda虚拟环境的离线迁移
Lsy_0408
anaconda
假定A为能上网的需要迁移出环境的机器;B为不能上网的需要迁移入环境的机器。方法一:直接拷贝envs下的整个已有环境先下载A机中envs目录下的已有环境文件夹,并将其上传至B机上然后使用以下命令:condacreate-n[new_envs_name]--clone[pathtoenvs_names]--offline注:-n[new_envs_name]:和正常创建conda的一样,创建新的虚拟环
ADS基础教程1 - 软件简介
RunningCamel
ADS仿真嵌入式硬件
1.ADS软件简介ADS是一款Kesight研制的先进设计系统软件,加速设计和仿真工作流程。该软件特点是为设计人员提供了针对特定设计流程预先配置好的软件组合。这些软件套件能够为设计师们提供多达三种不同的仿真技术——系统仿真、电路仿真和电磁(EM)仿真,帮助他们设计通信系统、GaAsMMIC、RFIC、射频系统封装(SiP)、射频电路板和信号完整性等产品。PathWaveADS软件套件包含W3600
深入解析 Vert.x 的关键特性、架构及其在异步编程中的应用
不是二师兄的八戒
架构Vert.x
下面将对Vert.x进行更深入的解读,从其底层架构、事件驱动模型、线程模型、集群模式、以及与现代微服务体系的深度集成等方面来进行拓展,以便全面理解Vert.x作为一个异步非阻塞框架的优势和复杂性。1.Vert.x底层架构详解1.1多反应器架构(Multi-ReactorPattern)Vert.x的核心是基于多反应器模式(Multi-ReactorPattern),这使得它可以有效地处理大量的并发
23行为型设计模式——迭代器模式
凢曐
设计模式迭代器模式c++
一、迭代器模式介绍迭代器模式(IteratorPattern)是一种行为型设计模式,旨在提供一种方法来顺序访问集合对象中的元素,而无需暴露集合的内部表示。简单来说,它允许你遍历一个集合中的所有元素而无需直接访问集合内部的结构。例如STL中的容器存在输入输出迭代器,包括双向迭代器、随机访问迭代器等,算法通过迭代器就可以以某种权限去访问容器中的数据。GoF一书对迭代器模式的介绍迭代器(Iterator
【Uniapp】关于实现下拉刷新的三种方式
天下代码客
【Uniapp】笔记uni-app前端
在小程序、h5等地方中,常常会用到下拉刷新这个功能,今天来讲解实现这个功能的三种方式:全局下拉刷新,组件局部下拉刷新,嵌套组件下拉刷新。全局下拉刷新这个方式简单,性能佳,最推荐,以下为步骤:配置pages.json(在需要该功能的页面设置对应属性){"pages":[{"path":"pages/index/index","style":{"enablePullDownRefresh":true,
WPF两点之间绘制丝滑的贝塞尔曲线
不知名君
WPF开发心得自定义控件WPF技术wpf
WPF两点之间绘制丝滑的贝塞尔曲线在做这种节点连线的控件时,需要绘制流畅的曲线。绘制贝塞尔曲线的代码如下:(geo数据给到Path的Data即可绘制)privatevoidRefresh(){PathGeometrygeo=newPathGeometry();PathFigurepathFigure=newPathFigure();pathFigure.StartPoint=StartPoint;
Python爬取小说保存为Excel
不知所云975
python
本代码以实际案例介绍,爬取‘笔趣阁最新小说‘列表保存为表格文件。类封装以及网络爬虫以及openpyxl模块可以参考学习。#更新小说目录importrequestsfromlxmlimportetreeimportopenpyxlfromopenpyxl.stylesimportFont,Alignment,Side,Border,PatternFill#定义下载表格的类classDown_exce
用连接数据库的方式读取excel
Vanqqqq
SQLC#excel
之前喜欢用hssfworkbook直接将excel读取到workbook中,这样直接对sheet进行解析。可是当数据量很大,数据文件到5M以后c#的内存占用很大,就会很卡了。所以改用这种方法读取到dataset中,再对数据进行解析。直接上代码:publicstaticDataSetGetExcelTableByOleDB(stringstrExcelPath){try{DataTabledtExc
Excel与数据库操作
楼外楼
excel数据库sqlsqlserver服务器insert
VC6.0中用ADO操作Excel的连接字符串:"DSN=ExcelFiles;DBQ=FilePath+FileName;DefaultDir=FilePath;DriverID=790;MaxBuffersize=2048;pagetimeout=5;"例如:DSN=ExcelFiles;DBQ=D://T_20071122.xls;DefaultDir=D://;DriverId=790;M
git之reset命令
crayon-shin-chan
surprise#git版本控制git
1.简介git-reset:将当前的HEAD重置为指定状态,也就是重置顶部commit的引用2.概要gitreset[-q][][--]…gitreset[-q][--pathspec-from-file=[--pathspec-file-nul]][]gitreset(--patch|-p)[][--][…]gitreset[--soft|--mixed[-N]|--hard|--merge
tomcat升级报错
格格巫 MMQ!!
liunx软件tomcatjavaservlet
Attributevaluerequest.getContextPath()+“/formula/taskRepetition.do”isquotedwith"whichmustbeescapedwhenusedwithinthevalue1.访问JSP时,报错:Attributevalueisquotedwith"whichmustbeescapedwhenusedwithinthevalue。
探索TypeScript设计模式:构建更健壮的软件基石
任蜜欣Honey
探索TypeScript设计模式:构建更健壮的软件基石TypeScript-Design-PatternsCoderepositoryforTypeScriptDesignPatterns,publishedbyPackt项目地址:https://gitcode.com/gh_mirrors/typ/TypeScript-Design-Patterns在编程的世界里,设计模式是开发者们的指南灯,它
《Python编程轻松进阶》干货整理
KLZZ66
python开发语言idejupyter
《Python编程轻松进阶》干货整理最近把《Python编程轻松进阶》看完了,看得过程中顺便整理了一些自己觉得比较重要的点,分享出来,共同进步!文章目录《Python编程轻松进阶》干货整理第一章处理错误和寻求帮助1.1如何查看模块版本第二章环境设置和命令行2.1使用pathlib库可以让Python脚本跨平台兼容2.2Path常用命令2.3命令行参数2.3.1/?2.3.2python-c2.3.
统一思想认识
永夜-极光
思想
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