- Python 中无穷的表示
梦想是优秀社畜
Pythonpython编程语言经验分享
我们在python编程过程中可能需要设定一个无穷大的值来辅助我们的逻辑语句,下面展示python中无穷大的表示,和无穷的判断方法。上代码!!!#无穷的判断需要导入math模块importmath#正无穷zheng_wq=float('inf')#负无穷fu_wq=-float('inf')#float('-inf')#判断是否无穷math.isinf(zhengwq)#最终结果是True希望我的笔
- 子平八字生成
warrah
岁月云——java基础java服务器前端
1多线程生成数据@PostMapping("genData")publicResponseResultgenData(){StopWatchstopWatch=newStopWatch();stopWatch.start();//intthreadPoolSize=Math.min(Runtime.getRuntime().availableProcessors()*2,64);intthread
- 图论DFS:黑红树
Python_enjoy
C++洛谷题解每周更新栏目深度优先图论算法
我的个人主页{\large\mathsf{{\color{Red}我的个人主页}}}我的个人主页往{\color{Red}{\Huge往}}往期{\color{Green}{\Huge期}}期文{\color{Blue}{\Huge文}}文章{\color{Orange}{\Huge章}}章DFS算法:记忆化搜索DFS算法:全排列问题DFS算法:洛谷B3625迷宫寻路此系列更新频繁,求各位读者点赞
- Java 查询最大最小值 详解
飞滕人生TYF
javajava算法
在Java中,查询最大值和最小值是常见需求。以下将详细介绍最大值和最小值的查询方法,包括适用于数组、集合、以及更复杂的数据结构的解决方案。1.使用Math类Java提供了Math.max和Math.min方法,可用于直接比较两个值。适用场景比较两个或少量的值。示例代码publicclassMaxMinWithMath{publicstaticvoidmain(String[]args){inta=
- python实现烟花效果 (附完整源码)
源代码大师
Python实战教程pythonpygame开发语言
python实现烟花效果下面是一个使用Python的pygame库实现烟花效果的完整示例代码。该代码创建了一个简单的窗口,并在窗口中生成烟花效果。首先,确保你已经安装了pygame库。如果没有安装,可以使用以下命令进行安装:pipinstallpygame接下来,使用以下代码创建一个烟花效果:importpygameimportrandomimportmath#初始化pygamepygame.in
- C#中委托和函数类的关系
艾米理
c#c#开发语言
函数类并不完全等同于委托,但两者之间确实有密切关系。在C#中,委托是一个类型,用来封装具有特定参数和返回值的方法。你可以将委托理解为函数的“引用类型”或者“类”。委托允许你将方法作为参数传递给其他方法,并且可以动态地调用这些方法。委托和函数类的关系委托的定义和作用委托是一种类型,用于引用方法。它定义了方法的签名(参数和返回类型)。示例:publicdelegateintMathOperation(
- 力扣209(2)——滑动窗口?!快慢指针的pro版罢了
の梦
leetcode算法职场和发展蓝桥杯java数据结构
题目及暴力法在我的这篇博客,有兴趣的可以移步到这里:力扣209题长度最小的子数组这次给出一种新解法滑动窗口法classmian{publicintmin(inttarget,int[]nums){//滑动窗口法,快慢指针的pro版intn=nums.length;intmin=n+1;intl=0;intsum=0;for(intr=0;r=target){min=Math.min(min,r-l
- C# 提升性能效率
东城十三
C#c#开发语言
以下是一些提升C#程序运行效率的完整解决方法,包括代码优化、内存管理、并行和异步处理、编译和运行时优化、以及性能分析和监控。1.优化代码逻辑避免不必要的计算和方法调用//避免重复计算doubleresult=Math.Sqrt(2);//计算一次for(inti=0;i();dictionary[1]="one";dictionary[2]="two";//查找比在列表中更快if(dictiona
- 学生管理系统C++版(简单版)
c++初学者ABC
C++c++程序
有错请指出头文件:#include#include#include类型:structStudent{ charname[100];//名字 intage;//年龄 charsex;//性别 intMaths;//数学成绩 intChinese;//语文成绩 intEnglish;//英语成绩}xm[10000]; 函数:voidadd_student()//添加学生{cout>xm[y
- YOLOv10-1.1部分代码阅读笔记-base.py
红色的山茶花
YOLO笔记深度学习
base.pyultralytics\data\base.py目录base.py1.所需的库和模块2.classBaseDataset(Dataset):1.所需的库和模块#UltralyticsYOLO,AGPL-3.0licenseimportglobimportmathimportosimportrandomfromcopyimportdeepcopyfrommultiprocessing.
- 「C/C++」C++关键字 之 mutable 可变变量关键字
何曾参静谧
c语言c++java
✨博客主页何曾参静谧的博客(✅关注、点赞、⭐收藏、转发)全部专栏(专栏会有变化,以最新发布为准)「Win」Windows程序设计「IDE」集成开发环境「定制」定制开发集合「C/C++」C/C++程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「UG/NX」BlockUI集合「Py」Python程序设计「Math」探秘数学世界「PK」Paras
- 拿下美赛M奖之必备软件和网站!
东方建模.
数学建模
目录前言:一.题目翻译与理解:DeepL+知云文献翻译二.查找文献:国内外平台结合使用三.论文撰写:Word或LaTeX+Overleaf四.公式输入与思维导图:MathType+XMind五.阅读文献与文献管理:AdobeReader+Zotero六.模型求解与编程:MATLAB+Python+Lingo七.图形绘制与结果可视化:MATLAB+Python+Origin八.流程图与示意图:亿图图
- 真是惭愧,直到今天,我才搞懂桶排序算法
前端javascript算法
前言在我重新复习我创建的代码段集合网站,我复习到了桶排序算法的实现,它的代码如下所示:constbucketSort=(arr,size=5)=>{constmin=Math.min(...arr);constmax=Math.max(...arr);constbuckets=Array.from({length:Math.floor((max-min)/size)+1},()=>[]);arr.
- javascript取随机数_javaScript中的随机数方法
weixin_39827905
javascript取随机数
随机数方法是javaScript中经常使用的一种方法。例如,需要在屏幕上的一个随机位置显示一幅图像,编写的小游戏要扔骰子等。javaScript中Math对象的random()方法生成0-1之间的随机数,它的随机数种子采用系统时间,因此可以基本保证每次调用random()方法时都会采用不同的伪随机数序列。下面我们对javaScript中的各种随机数方法做一个小结。基本的随机数在javaScript
- JavaScript随机数
凝霜月冷残-草木破白衣
接口自动化测试javascriptjson前端
概念总结js产生随机数通常是使用javascript的Math.random()函数常用的几种方法:Math.random()表示:结果为0-1之间(包括0,不包括1);Math.floor(Math.random()*10+1)表示结果为1-10之间的一个随机数Math.floor(Math.random()*24)表示结果为0-23间的随机数1.Math.random();返回0-1之间的随机
- Sass报错: Using / for division is deprecated
Pinia_0819
vuesass前端css
运行项目时报以下错误::Using/fordivisionisdeprecatedandwillberemovedinDartSass2.0.0.Recommendation:math.div($px,$screenWidth)Moreinfoandautomatedmigrator:https://sass-lang.com/d/slash-div官方还很贴心做了一个一键迁移的工具,执行下面两行
- 替代开方运算sqrt
qq_24158561
算法c语言stm32c#
8位mcu开方math.h容易超ROM空间;下面几种替代方案:二分法逐次逼近,牛顿法,#definesqrtsqrt_16//sqrt0//sqrt1//sqrt2floatfsqrt(doublenumber){//牛顿叠代doubleapprox=number/2.0;doubleprecision=0.001f;//1E-7;while(abs(approx*approx-number)>p
- Python 写的《桌面时钟》屏保
PieroPc
Pythonpython开发语言
原代码:#日历式时钟#导入所需的库#作者:Hoye#日期:2024年12月16日#功能:显示当前日期、星期、时间,并显示模拟时钟importtkinterastkfromtkinterimportttkimporttimeimportmathimportsysdefexit_screensaver(event=None):root.quit()defdraw_clock_face():#清除画布c
- 阿里云通义开源首个推理步骤评估标准,探索AI推理模型新路径
量子位
1月16日,阿里云通义开源全新的数学推理过程奖励模型Qwen2.5-Math-PRM,72B及7B尺寸模型性能均大幅超越同类开源过程奖励模型;在识别推理错误步骤能力上,Qwen2.5-Math-PRM以7B的小尺寸就超越了GPT-4o。同时,通义团队还开源首个步骤级的评估标准ProcessBench,填补了大模型推理过程错误评估的空白。在当前大模型推理过程中,不时存在逻辑错误或编造看似合理的推理步
- 1156 Sexy Primes (20)
圣保罗的大教堂
PAT刷题pat考试
Sexyprimesarepairsofprimesoftheform(p,p+6),so-namedsince"sex"istheLatinwordfor"six".(Quotedfromhttp://mathworld.wolfram.com/SexyPrimes.html)Nowgivenaninteger,youaresupposedtotellifitisasexyprime.Input
- 《CPython Internals》阅读笔记:p118-p150
python
《CPythonInternals》学习第8天,p118-p150总结,总计33页。一、技术总结补充一些本人整理的关于Context-FreeGrammar(CFG)的知识。1.symbol(符号)Amathematicalsymbolisafigureoracombinationoffiguresthatisusedtorepresentamathematicalobject(符号是一个数字或数
- groovy性能测试,groovy和java性能对比
lilili啊啊啊
groovygroovy性能对比groovy性能测试
看groovy的接口和api很神奇的,想用用,用之前做了个小的性能测试,结果令人目瞪口呆classMain{staticmain(args){defstart=System.currentTimeMillis();for(inti=1;i<100000000;i++){Math.sin(1.5);}defend=System.currentTimeMillis();printlnend-start
- 自然语言处理_tf-idf
_feivirus_
算法机器学习和数学自然语言处理tf-idf逆文档频率词频
importpandasaspdimportmath1.数据预处理docA="Thecatsatonmyface"docB="Thedogsatonmybed"wordsA=docA.split("")wordsB=docB.split("")wordsSet=set(wordsA).union(set(wordsB))print(wordsSet){'on','my','face','sat',
- Codeforces Round 972 (Div. 2) A-C 题解
AKDreamer_HeXY
Codeforces比赛题解c++算法动态规划数据结构贪心算法
本来以为B2难度会1900什么的,结果感觉1200还没有,先做的B1,后悔了QwQ关于我现场没切出C这件事……现场排名:A.SimplePalindrome题意构造一个长度为nnn的字符串,只包含aeiou五种字母,需要使得构造出来的字符串所包含的回文子序列数量最小思路当n≤5n\le5n≤5时,只要555个字母不重复出现都是最优情况当n>5n>5n>5时,可以证明:把相同字母放在一起是最优情况:
- matlab设置图像窗口大小,matlab 图形窗口大小的设置
weixin_39534002
matlab设置图像窗口大小
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%常用选项和小技巧%%%%%%画等值线[cchh]=contour(peaks(30),'LINESPEC','b-')clabel(cc,hh,'manual')%写文本text(5,10,'\bfmath\slmath\itmath\rmmath\alpha','color',[0.10.10.9],'fonts
- FRotation FVector 相互转换
我真的不知道该起什么名字了
FVectortoFRotatorFRotatorFVector::Rotation()const{returnToOrientationRotator();}FRotatortoFVectorCORE_APIFVectorFRotator::Vector()const{floatCP,SP,CY,SY;FMath::SinCos(&SP,&CP,FMath::DegreesToRadians(P
- Codeforces Round 969 (Div. 2) C. Dora and C++ (裴蜀定理)
致碑前繁花
刷题记录c语言c++开发语言
什么?竟然是裴蜀定理。。。由于这里给出了a和b两个数,我们或许可以想到使用同样是需要给出两个定值的裴蜀定理,即:如果给定xxx和yyy,那么一定有ax+by=gcd(x,y)ax+by=gcd(x,y)ax+by=gcd(x,y)。所以在这时候我们就可以让输入的所有数都去对gcd(a,b)gcd(a,b)gcd(a,b)取模,这样就能够得到所有数的最简形式(可以当成是让所有数尽可能消去aaa和bb
- 洛谷水题 记录
木木ainiks
算法c++数据结构
P1093[NOIP2007普及组]奖学金sort排序即可注意cmp的写法#include#includeusingnamespacestd;structnode{intid;intchinese;intmath;intenglish;intcount;}a[305];intcmp(node&a,node&b){if(a.count!=b.count){returna.count>b.count;
- Java:数学相关类
昭关969
java开发语言
Math类Math类是数学工具类,用于数学计算,构造方法是私有的,方法都是静态的,因此直接类名调用staticintabs(inta)求参数绝对值staticdoubleceil(doublea)向上取整staticdoublefloor(doublea)向下取整staticlonground(doublea)四舍五入staticintmax(inta,intb)求较大值staticintmin(
- JS 获取数组对象中某个属性的最大值或最小值
qq_36437172
JSMath.maxMath.minsortapply
最近的开发中经常会遇到前端自己生成唯一id,然后在数组中增加删除插入对象,这样一来就要的要当前使用的id的最大值。总结一下,有两种比较简便的方法可以做到:1.将属性值通过map生成一个数组,再使用Math.max取最大值2.使用排序sort,先对数组的项排序,再取排序后的对应的项的值数组对象如下,求id的最大值和最小值list=[{id:1,name:'jack'}, {id:2,name:
- 统一思想认识
永夜-极光
思想
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