• 关于

    网站元素怎么用

    的搜索结果

问题

获取网站所有网页访问的URL地址和页面资源加载访问地址

杨冬芳 2019-12-01 20:09:10 1859 浏览量 回答数 1

问题

PHP爬虫在js对象里该如何获取

小旋风柴进 2019-12-01 20:12:47 1013 浏览量 回答数 1

问题

页面完全加载前,js 如何实现 多按钮弹窗

a123456678 2019-12-01 20:19:41 1185 浏览量 回答数 1

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

问题

【javascript学习全家桶】934道javascript热门问题,阿里百位技术专家答疑解惑

管理贝贝 2019-12-01 20:07:22 6202 浏览量 回答数 1

问题

【CSS学习全家桶】416道CSS热门问题,阿里百位技术专家答疑解惑

管理贝贝 2019-12-01 20:07:24 8458 浏览量 回答数 1

回答

Re求助:使用SLB后网站加载图片非常慢! 怀疑是阿里云的IO原因,跟技术沟通:他检查了IO说没问题,肯定不是这个IO的问题,说有可能是我图片服务器文件量太大,文件过多,用户访问的时候需要一层一层索引,比如: ,先找到operation、然后进入lqwyerad、找到好几层才找到图片。随后我直接把几张图片放到网站根目录,用域名或者ip地址访问也是很慢。 技术建议使用它们的开放存储OSS。目前正准备试试。 大家有什么好的建议,请告诉我,非常感谢!!!!!!!!! ------------------------- 回2楼billlee的帖子 是与SLB无关,我就是直接用这台图片服务器的IP地址访问本服务器中的图片,打开也是非常慢,要加载很久。我在使用阿里云之前,服务器是托管的,那时候打开图片的速度却是非常快的。这是怎么回事呢?希望有这方面经验的人给指点,谢谢!!!!! ------------------------- Re求助:使用SLB后网站加载图片非常慢! 是啊,这台服务器就放了图片,装了apache,没有其它的服务,我的图片总大小为13G左右!为什么这么慢?难道真的像阿里客服所说:是服务器文件量太大,文件过多,用户访问的时候需要一层一层索引导致??? ------------------------- 回10楼xuanmin的帖子 技术检查了,说这台服务器资源很空闲,io也很低!!内存用的是32G,cpu8核,带宽15M,这些资源使用率都很低 ------------------------- 回7楼gdliwt的帖子 感谢你的回复,我的同一级目录下应该没有超过1000张图片的,不过就是目录太多,比如《h ttp://images.fabao365.com/operation/lawyerad/2013/03/19/201303190934390.73972600.jpg》 ------------------------- 回13楼水元素的帖子 网站图片会不断增加,如果超过32G后那还是得放磁盘里! ------------------------- 回15楼水元素的帖子 谢谢水元素,您的建议非常有效。能告诉我怎么把图片放入缓存里吗?是用memcache吗???? ------------------------- Re求助:使用SLB后网站加载图片非常慢! 感谢楼上几位朋友的建议!!!!! ------------------------- 回18楼sunfei的帖子 目前OSS的价格还是太贵了,我尝试过用OSS,在首页只放了一张图片,半天就消费了0.25元,这要是把所有的图片都使用OSS,一天估计会消费好几百!! ------------------------- 回21楼sunfei的帖子 图片自己存在阿里云服务器上,打开页面加载图片至少也要10多秒!现在只能少用一台阿里云,把图片存到我们公司自己的服务器上了(服务器托管在机房) ------------------------- Re求助:使用SLB后网站加载图片非常慢! 感谢大家的回复,现在我的图片是放在自己的服务器上的,阿里云放图片实在是不行,OSS的价格又太贵,所以还是放在公司自己的服务器上吧!

likelike 2019-12-02 01:02:02 0 浏览量 回答数 0

问题

【精品问答】Python数据爬取面试题库100问

珍宝珠 2019-12-01 21:55:53 6502 浏览量 回答数 3

问题

【Java学习全家桶】1460道Java热门问题,阿里百位技术专家答疑解惑

管理贝贝 2019-12-01 20:07:15 27612 浏览量 回答数 19

问题

【精品问答】python技术1000问(1)

问问小秘 2019-12-01 21:57:48 454222 浏览量 回答数 19

问题

2018python技术问答集锦,希望能给喜欢python的同学一些帮助

技术小能手 2019-12-01 19:31:10 2040 浏览量 回答数 2

问题

【精品问答】前端开发必懂之HTML技术五十问

问问小秘 2019-12-01 21:59:10 5607 浏览量 回答数 2

问题

荆门开诊断证明-scc

游客5k2abgdj3m2ti 2019-12-01 22:09:00 1 浏览量 回答数 0

问题

厦门求职,应届毕业生求个java方向或者安卓的岗位~~? 400 报错

爱吃鱼的程序员 2020-06-02 17:06:34 0 浏览量 回答数 1

问题

Python爬虫知识点梳理

珍宝珠 2020-03-18 10:13:52 404 浏览量 回答数 1

问题

nginx服务器basePath路径问题如何解决

klskls 2019-12-01 21:38:18 13240 浏览量 回答数 5

问题

程序员报错行为大赏-配置报错

问问小秘 2020-06-11 13:18:25 6 浏览量 回答数 1

问题

【精品问答】Java技术1000问(1)

问问小秘 2019-12-01 21:57:43 38419 浏览量 回答数 12

问题

搜索引擎背后的经典数据结构和算法 6月10日 【今日算法】

游客ih62co2qqq5ww 2020-06-15 07:32:11 0 浏览量 回答数 0

问题

担保交易发货失败

爵霸 2019-12-01 19:35:21 962 浏览量 回答数 0

回答

用上 FreeMarker 后,再也不需要 JSP了,JSP相对来说弱爆了,连 layout 功能都没有,layout 现在是基本配置了###### 引用来自“爪哇老妖”的答案 这个真可以有,JSP、Velocity、Freemarker这些都属于动态模版技术,HTML呢,直接就是静态模版技术,也许你会反问我可以用ajax来实现后台调用数据啊,可是我很担心你那页面的加载速度和用户体验,情况更严重的是,有些页面的效果是根据后台数据或参数来展示的,对于你的这个想法,持保留意见。。。 从加载速度方面来说,并没有想像中那么慢,在Chrome和Firefox上速度飞快,加载HTML的时候根本感觉不到它做了些什么,只是在IE上不太理想,页面巨大的话有时候确实会卡一下,不过随着IE版本的更新这个情况可能会慢慢解决掉。 用户体验方面感觉比原来刷页面的方式好的多,Ajax与后台交互,所以根本看不到讨厌的500错误页面了,用JS处理好后台返回的错误,提示信息更加易懂。 至于页面显示内容与数据库有关的问题,这都是交给后台组织好数据用JSON返回的,例如:{userid:1,operation: {'查询'}}和{userid:2,operation: {'查询','删除'}}之类,这样JS拿到JSON数据之后就知道该怎么构建页面了,当然,这些页面元素级的控制,完全可以放到数据库中去,动态的实时控制用户权限。 ######楼主说的情况跟extjs一样,抛弃动态页面,所有数据用js控制,展现,IE处理js虽然慢一点,但这是可控的,在加载的时候给个loading图片用户看起来比浏览器加载动态页面效果好些。要是js功底好,还可以写一些特效,用户体验就更好了。######+freemarker###### 看情况啊,可以有。 不过你说的情况,也有很多,尤其是网站很大,甚至页面的不同部分都是不同的小组做的话。 这时候不用落伍的iframe,就用ajax,jsonp了。 ###### 引用来自“闫晓沛”的答案 +freemarker 是直接访问freemarker的模板吗?这样也确实可以代替JSP,不过还是得走一下Java容器,感觉不如直接让Apache处理HTML的好 ###### 这个真可以有,JSP、Velocity、Freemarker这些都属于动态模版技术,HTML呢,直接就是静态模版技术,也许你会反问我可以用ajax来实现后台调用数据啊,可是我很担心你那页面的加载速度和用户体验,情况更严重的是,有些页面的效果是根据后台数据或参数来展示的,对于你的这个想法,持保留意见。。。 ######回复 @lovinglily : ”世界上不会有一个页面是预先设计好的,因为它有数据“乔布斯说的######意思是,静态页面预先设计好布局的话,并不是根本意义上根据后台数据动态改变,这对页面数据显示有影响是吧..######你能保证所有用户的浏览器都能处理你的这些数据?######跨浏览器确实是一个大问题,可以借助jQuery这样的JS库来解决,虽然有些时候也不是很完美,但是够用了######对于jsp freemarker 等之类的都是属于动态模板,要知道它们最终都是翻译成html代码给浏览器,所以没有替代这种说法。只能说哪种情况更适合你的应用了。如果动态交互更多 且动态判断多的情况下 你用ajax动态请求的方式显得很蹩脚,这中间有个取舍和平衡点######同意你的观点###### 引用来自“爪哇老妖”的答案 这个真可以有,JSP、Velocity、Freemarker这些都属于动态模版技术,HTML呢,直接就是静态模版技术,也许你会反问我可以用ajax来实现后台调用数据啊,可是我很担心你那页面的加载速度和用户体验,情况更严重的是,有些页面的效果是根据后台数据或参数来展示的,对于你的这个想法,持保留意见。。。 我能保证所有用户浏览器都能处理服务器发给它的HTML,很难保证用户浏览器能处理我页面里的所有Ajax数据请求。 ######回复 @xmut : js不可能运行的很慢,就算被我们喷的无地自容的IE6,其实也是大量的js在运行。一个页面的js不可能很多,多到不能处理的地步,否则是本身就设计有问题的######啥年代了,还在纠结浏览器能不能运行js。######没错,这样的项目架构确实存在禁用JS之后玩不转的情况,但是现在有几个项目不用JS的呢,我们可以把“开启JS”作为项目运行必需的环境提出来######确实!楼主把页面控制逻辑全部交给javascript,万一客户端javascript被禁用,或者javascript运行速度很慢,这反而影响了客户体验!######有还是没有 ,看项目的需要,没有不能替代的技术方案。

爱吃鱼的程序员 2020-06-04 16:49:07 0 浏览量 回答数 0

问题

使用form表单跨域cors进行OSS文件上传

浅斟 2019-12-01 21:41:29 17181 浏览量 回答数 3

回答

想法不错,不过这个很麻烦,根据表名在后台生成增删该查的代码,传到前台,异步实现。 ######回复 @duoduo3_69 : 还有为什么前台不用框架呢,用框架也就copy,改些参数的事。######回复 @duoduo3_69 : 这个我也没做过,只是有个大概的思路,首先dao层要有基本增删改查的封装,再在业务逻辑里写个生成html代码的方法,参数为实体类,利用反射取实体属性,根据属性类型,生成相应的表单元素。(这里面就有麻烦的操作,例如:性别,人性化的就是使用radio)。这个值得研究下。######要是能完成的话,这点麻烦就不是麻烦了,好几百个模块呢、老哥能更详细点么###### 写增改查页面的确很累人,尤其是量大的时候一想起来无力感顿然而生,这东西如若没有特别的页面效果需求,类似于后台的数据管理页面编写,几乎等于重复劳动毫无技术含量。 如果当初你建立数据库结构的SQL脚本还在,而且包含符合页面展示的注释,可以自己写正则提取里面的数据,根据规则或自己定义的页面模板生成相应的页面文件(甚至实体类、Dao和Action的类和接口),当然生成后的文件不可能一蹴而就的拿来直接使用,可能在你使用的时候需要按照实际需求做些或多或少的调整,但是这比你一个个的编写快得多了。 如果有时间,最多三五天就能搞定吧,去年初我做过而且用过。当然可能还有更好的的工具可以用吧,但是我没查过。 ######老哥你说的太对了,一看到300多个表我就无力了,网上找了半天还没想明白怎么搞,现在在想是不是能用hibernate的xml文件半点儿神马事儿######代码生成器,9iuspring项目中有一个代码生成器,你可以看下######额 木看懂啊这个、###### 没辦法的吧  這個必須手動寫的吧? 本身web开发 大多情况都是增删改查而已! ######工作量太大 想想办法解决掉 现在考虑用反射的方法######楼主可以将myeclipse生成的hibernate映射文件解析或者实体bean,然后提取关键字段属性生成页面的文件,搞web,页面增删改查是绝对避免不了的。只能说是使用自动生成代码的工具尽量的减少重复无意义的代码的编写。######回复 @Mr_Qi : 想从反射入手 正在想思路 大神能具体指导下么######回复 @liu_000 : 还好了,自己可以直接写一个table套一下,然后css随便从什么网站扒一个最简单了,要是本身html很好的可以写div什么d,这个做做可以更深入的,比如对字段加条件限制,对应分为前台和后台的校验框架,例如在text加属性max,min,reg什么的,应该不是很难吧,但是更精细的就比较难了######回复 @Mr_Qi : 这样确实可行,但是html是要美工去处理的,这貌似不属于java的范畴呢...懒人飘过...######反射ok的,有实体直接在jsp上反射对应的属性,action直接rest风格######大神不敢当。大概就是先得到field的数目,然后将数据库自动生成的字段去掉(如主键自增,timestamp什么的),将对应的field的集合传到模板引擎中(比方velocity,jsp什么的),形成一个大的table,每一个input的自己根据当前的field加上属性(如 dataType='int' maxLength='11' minLength='11'),这个可以使用jquery-validate框架来写规则,如果是时间类型的,再去加一个bootstrap里的时间选择什么的~关键是规则可能比较头疼,因为数据库不同的表可能属性的要求不一样###### 好吧 我不多说了 今天刚在群里一个童鞋推荐这个 估计是你想要的 http://code.google.com/p/rapid-framework/

kun坤 2020-06-09 13:48:24 0 浏览量 回答数 0

问题

数学之美:布隆过滤器 6月24日 【今日算法】

游客ih62co2qqq5ww 2020-06-25 11:44:02 1 浏览量 回答数 0

问题

设置跨域资源共享CORS并使用JS表单PostObject直接上传到OSS

wood23 2019-12-01 21:36:11 35602 浏览量 回答数 5

问题

最大限度利用 JavaScript 和 Ajax 性能:报错

kun坤 2020-06-05 22:56:50 0 浏览量 回答数 1

问题

程序员报错QA大分享(1)

问问小秘 2020-06-18 15:46:14 8 浏览量 回答数 1

问题

从HTML中攫取你所需的信息:报错

kun坤 2020-06-08 11:01:51 3 浏览量 回答数 1

回答

Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 上午笔误,应该是近一年来,只有今年2月、3月稳定一些,没有出现这种情况。其余时候,都有这种磁盘IO不稳定的情况。 ------------------------- Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 阿里云这台服务器,IP地址头是 42.121.19.*,期间还迁移过两次,都是因为磁盘IO问题进行的迁移,迁移后还是差不多。 去年迁移一次,今年4月20日又迁移一次。 ------------------------- Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 官方?官方在忙着做促销呢,人家“小云有约”,忙着与未来的客户约会呢。 老客户反正已经诳进来了,一时半会儿也跑不掉。 技术问题解决起来多麻烦,还是忙着收钱来得爽。 真是给阿里云这个磁盘IO不稳定的情况给气死了! ------------------------- Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 谢谢vpsmm的建议,如果实在不行,就换台云主机试试吧。折腾啊~~ ------------------------- Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 上面大家的分析都挺有道理的,希望阿里云官方正视这个问题,早日解决。 ------------------------- Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 情况肯定属实的,博客园(cnblogs)影响比较大吧,我看博客园官网也说遇到阿里云好几次这样的问题,还是没有解决。这个与阿里云底层架构、用户数量有关。 只要google一下“阿里云 磁盘IO”,自然可发现大量的这方面的反馈。 另外,能否推荐一款比较好用的Windows平台下的磁盘IO监测软件?我现在是自己做的程序,IO异常时就发短信。 ------------------------- Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 刚才10:03的时候又遇到一次20秒磁盘IO不能访问的情况,很郁闷~ ------------------------- Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 10:35:42,又遇到连续20秒,磁盘IO无法访问的情况。 ------------------------- 回18楼gdliwt的帖子 这个比喻不太恰当,客户使用阿里云的云主机,磁盘IO的稳定性是最基本的。我前面都说过了,你说磁盘IO速度慢,2MB/s的蜗牛速度我都能接受,这种彻底连续20秒无法访问,就太不应该了。这样不稳定,你让客户怎么用? ------------------------- 回21楼云迷的帖子 是的,就如同你所说,一般这种几十秒没有响应的情况,多数客户都是忍了。这个情况太普遍了,阿里云应该正视及解决。 我实在是忍无可忍才在这里发帖。 ------------------------- Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 11:03:45,又出现连续20秒无法访问磁盘的情况,这是今天出现的第四次了。 今天的简单汇总,5月8日,连续20秒无法访问磁盘的时间点(截止目前,出现4次): 09:25:38 10:30:50 10:35:42 11:03:45 ------------------------- ReRe阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 引用第25楼temp2012于2013-05-08 11:08发表的 Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 : 11:03:45,又出现连续20秒无法访问磁盘的情况,这是今天出现的第四次了。 今天的简单汇总,5月8日,连续20秒无法访问磁盘的时间点(截止目前,出现4次): 09:25:38 10:30:50 10:35:42 ....... 上面的10:30:50,应该是10:03:50 ------------------------- Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 我这个是应用服务器,不是网站。整体磁盘读写低于1MB/s,网络带宽低于300KB/s 这个要求很低,但就这样,阿里云的磁盘IO如此不稳定,也达不到。 其实就如同上面 “云迷”的回复,网站一样存在这个问题,只不过一般网站主没有感觉到这种几十秒的“卡死”,但网站的最终客户其实会感觉网站不稳定,只不过一般会不反馈给网站主而已。 ------------------------- Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 没有使用数据库 ------------------------- 回30楼joycean.zhu的帖子 是的,以前出问题时,提交工单,但阿里云的技术支持根本就不承认有问题。因为提交工单时,没有出现“卡死”的现象(过一段时间偶尔又会出现)。 ------------------------- 回33楼gdliwt的帖子 已经迁移了两次了,没有用,迁移后还是有类似的问题。 这个需要阿里云从根本上来解决,如果迁移有效果,我也不再这里发帖了。 ------------------------- 回35楼水元素的帖子 没有什么特别的,程序正常跑着,偶尔就卡死了。 你可自己做个小程序监控磁盘IO,自然可发现这种现象,每天都要出现几次,很常见。只不过因为磁盘卡死时间一般在几十秒内(我是监控到20秒没有响应就报警),所以很多用户没有发现而已。 ------------------------- 回39楼gdliwt的帖子 这个是自己开发的,而且是专门针对我服务器中应用进行监控的。 ------------------------- 回39楼gdliwt的帖子 这个是针对自己的应用开发的。其实你可做个小程序,程序中设一个定时器,每秒向一个文件中写入例如1024字节(1KB),如果连续20秒都无法写入,则报警(例如发送邮件出去,或记录到内存,等IO正常时则可写入日志文件)。即可可发现阿里云磁盘卡死时,连续20秒都无法向一个文件写入哪怕是仅仅1KB的数据。 ------------------------- 回45楼放牛娃的帖子 谢谢你的建议,不过: 1、已经迁移过两次了,这种情况还是会出现,一样不稳定; 2、出现不稳定状况时,是彻底“卡死”,连续20秒内根本就无法读写磁盘,因此无论如何降低磁盘IO都无法解决。前面已说过,我都磁盘IO速度要求根本就不高,只是希望稳定。 3、这个服务器是应用服务器,涉及到的是直接的二进制文件读写,估计还不太适合采用RDS方式。 ------------------------- Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 今天又出现了两次,连续20秒磁盘无响应。 13:07:57一次; 14:54:13又出现一次。 ------------------------- 回49楼云迷的帖子 其实出现这种情况时,是整个硬盘IO短暂时间内(例如几秒,或20秒)根本无响应,所以特别让人恼火。 ------------------------- Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 磁盘又卡住了!15:09:54秒! ------------------------- Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 下面大家来看看40个字节(仅仅能是40个字节)的写入速度吧: 下面的0毫秒是正常的,因为毕竟只有40字节。但磁盘IO出现问题时,40字节需要将近3秒才能写入完毕,你说说,这个怎么用?? 2013-5-20 15:11:05    上一次写入耗时:    0    毫秒 2013-5-20 15:11:06    上一次写入耗时:    0    毫秒 2013-5-20 15:11:07    上一次写入耗时:    0    毫秒 2013-5-20 15:11:08    上一次写入耗时:    0    毫秒 2013-5-20 15:11:09    上一次写入耗时:    0    毫秒 2013-5-20 15:11:10    上一次写入耗时:    0    毫秒 2013-5-20 15:11:14    上一次写入耗时:    2781    毫秒 2013-5-20 15:11:15    上一次写入耗时:    0    毫秒 2013-5-20 15:11:16    上一次写入耗时:    0    毫秒 2013-5-20 15:11:17    上一次写入耗时:    0    毫秒 2013-5-20 15:11:18    上一次写入耗时:    0    毫秒 2013-5-20 15:11:19    上一次写入耗时:    0    毫秒 2013-5-20 15:11:20    上一次写入耗时:    0    毫秒 2013-5-20 15:11:23    上一次写入耗时:    1563    毫秒 2013-5-20 15:11:24    上一次写入耗时:    0    毫秒 2013-5-20 15:11:25    上一次写入耗时:    0    毫秒 2013-5-20 15:11:26    上一次写入耗时:    0    毫秒 2013-5-20 15:11:27    上一次写入耗时:    610    毫秒 2013-5-20 15:11:28    上一次写入耗时:    0    毫秒 2013-5-20 15:11:29    上一次写入耗时:    0    毫秒 2013-5-20 15:11:30    上一次写入耗时:    0    毫秒 2013-5-20 15:11:31    上一次写入耗时:    0    毫秒 2013-5-20 15:11:32    上一次写入耗时:    0    毫秒 2013-5-20 15:11:33    上一次写入耗时:    0    毫秒 2013-5-20 15:11:34    上一次写入耗时:    0    毫秒 2013-5-20 15:11:35    上一次写入耗时:    0    毫秒 2013-5-20 15:11:36    上一次写入耗时:    0    毫秒 ------------------------- Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 今天09:00,硬盘又卡住了。 40个字节,仅仅40个字节,写入速度慢到什么程度????40字节写入需要几秒钟,这个就是硬盘IO彻底卡住了,你说正常的程序哪怕只是需要写入1KB字节,那还不得几十秒,这几十秒就是彻底卡住了,根本无响应。 这个还怎么使用??? 2013-5-21 9:05:49    上一次写入耗时:    0    毫秒 2013-5-21 9:05:50    上一次写入耗时:    0    毫秒 2013-5-21 9:05:51    上一次写入耗时:    0    毫秒 2013-5-21 9:05:52    上一次写入耗时:    0    毫秒 2013-5-21 9:05:53    上一次写入耗时:    0    毫秒 2013-5-21 9:05:54    上一次写入耗时:    0    毫秒 2013-5-21 9:05:55    上一次写入耗时:    0    毫秒 2013-5-21 9:05:56    上一次写入耗时:    0    毫秒 2013-5-21 9:05:57    上一次写入耗时:    0    毫秒 2013-5-21 9:05:58    上一次写入耗时:    0    毫秒 2013-5-21 9:05:59    上一次写入耗时:    0    毫秒 2013-5-21 9:06:00    上一次写入耗时:    0    毫秒 2013-5-21 9:06:02    上一次写入耗时:    875    毫秒 2013-5-21 9:06:03    上一次写入耗时:    0    毫秒 2013-5-21 9:06:04    上一次写入耗时:    0    毫秒 2013-5-21 9:06:05    上一次写入耗时:    0    毫秒 2013-5-21 9:06:06    上一次写入耗时:    0    毫秒 2013-5-21 9:06:07    上一次写入耗时:    0    毫秒 2013-5-21 9:06:08    上一次写入耗时:    78    毫秒 2013-5-21 9:06:09    上一次写入耗时:    0    毫秒 2013-5-21 9:06:12    上一次写入耗时:    2109    毫秒 2013-5-21 9:06:13    上一次写入耗时:    0    毫秒 2013-5-21 9:06:19    上一次写入耗时:    4953    毫秒 2013-5-21 9:06:20    上一次写入耗时:    0    毫秒 2013-5-21 9:06:22    上一次写入耗时:    1125    毫秒 2013-5-21 9:06:24    上一次写入耗时:    219    毫秒 2013-5-21 9:06:25    上一次写入耗时:    234    毫秒 2013-5-21 9:06:26    上一次写入耗时:    0    毫秒 2013-5-21 9:06:29    上一次写入耗时:    1891    毫秒 2013-5-21 9:06:30    上一次写入耗时:    0    毫秒 2013-5-21 9:06:31    上一次写入耗时:    0    毫秒 2013-5-21 9:06:33    上一次写入耗时:    1141    毫秒 2013-5-21 9:06:34    上一次写入耗时:    0    毫秒 2013-5-21 9:06:35    上一次写入耗时:    0    毫秒 2013-5-21 9:06:36    上一次写入耗时:    0    毫秒 2013-5-21 9:06:37    上一次写入耗时:    0    毫秒 2013-5-21 9:06:39    上一次写入耗时:    937    毫秒 2013-5-21 9:06:41    上一次写入耗时:    1032    毫秒 2013-5-21 9:06:42    上一次写入耗时:    0    毫秒 2013-5-21 9:06:44    上一次写入耗时:    1422    毫秒 2013-5-21 9:06:45    上一次写入耗时:    0    毫秒 2013-5-21 9:06:46    上一次写入耗时:    0    毫秒 2013-5-21 9:06:47    上一次写入耗时:    0    毫秒 2013-5-21 9:06:48    上一次写入耗时:    0    毫秒 2013-5-21 9:06:49    上一次写入耗时:    0    毫秒 2013-5-21 9:06:50    上一次写入耗时:    0    毫秒 2013-5-21 9:06:51    上一次写入耗时:    0    毫秒 ------------------------- Re阿里云的磁盘IO不是慢,而是太不稳定了!实在无法忍受 看看截图,这就是阿里云的磁盘IO,不稳定的程度如此之严重。

temp2012 2019-12-02 01:11:59 0 浏览量 回答数 0

回答

Go 的优势在于能够将简单的和经过验证的想法结合起来,同时避免了其他语言中出现的许多问题。本文概述了 Go 背后的一些设计原则和工程智慧,作者认为,Go 语言具备的所有这些优点,将共同推动其成为接替 Java 并主导下一代大型软件开发平台的最有力的编程语言候选。很多优秀的编程语言只是在个别领域比较强大,如果将所有因素都纳入考虑,没有其他语言能够像 Go 语言一样“全面开花”,在大型软件工程方面,尤为如此。 基于现实经验 Go 是由经验丰富的软件行业老手一手创建的,长期以来,他们对现有语言的各种缺点有过切身体会的痛苦经历。几十年前,Rob Pike 和 Ken Thompson 在 Unix、C 和 Unicode 的发明中起到了重要作用。Robert Griensemer 在为 JavaScript 和 Java 开发 V8 和 HotSpot 虚拟机之后,在编译器和垃圾收集方面拥有数十年的经验。有太多次,他们不得不等待 Google 规模的 C++/Java 代码库进行编译。于是,他们开始着手创建新的编程语言,将他们半个世纪以来的编写代码所学到的一切经验包含进去。 专注于大型工程 小型工程项目几乎可以用任何编程语言来成功构建。当成千上万的开发人员在数十年的持续时间压力下,在包含数千万行代码的大型代码库上进行协作时,就会发生真正令人痛苦的问题。这样会导致一些问题,如下: 较长的编译时间导致中断开发。代码库由几个人 / 团队 / 部门 / 公司所拥有,混合了不同的编程风格。公司雇佣了数千名工程师、架构师、测试人员、运营专家、审计员、实习生等,他们需要了解代码库,但也具备广泛的编码经验。依赖于许多外部库或运行时,其中一些不再以原始形式存在。在代码库的生命周期中,每行代码平均被重写 10 次,被弄得千疮百痍,而且还会发生技术偏差。文档不完整。 Go 注重减轻这些大型工程的难题,有时会以使小型工程变得更麻烦为代价,例如,代码中到处都需要几行额外的代码行。 注重可维护性 Go 强调尽可能多地将工作转给自动化的代码维护工具中。Go 工具链提供了最常用的功能,如格式化代码和导入、查找符号的定义和用法、简单的重构以及代码异味的识别。由于标准化的代码格式和单一的惯用方式,机器生成的代码更改看起来非常接近 Go 中人为生成的更改并使用类似的模式,从而允许人机之间更加无缝地协作。 保持简单明了 初级程序员为简单的问题创建简单的解决方案。高级程序员为复杂的问题创建复杂的解决方案。伟大的程序员找到复杂问题的简单解决方案。 ——Charles Connell 让很多人惊讶的一点是,Go 居然不包含他们喜欢的其他语言的概念。Go 确实是一种非常小巧而简单的语言,只包含正交和经过验证的概念的最小选择。这鼓励开发人员用最少的认知开销来编写尽可能简单的代码,以便许多其他人可以理解并使用它。 使事情清晰明了 良好的代码总是显而易见的,避免了那些小聪明、难以理解的语言特性、诡异的控制流和兜圈子。 许多语言都致力提高编写代码的效率。然而,在其生命周期中,人们阅读代码的时间却远远超过最初编写代码所需的时间(100 倍)。例如,审查、理解、调试、更改、重构或重用代码。在查看代码时,往往只能看到并理解其中的一小部分,通常不会有完整的代码库概述。为了解释这一点,Go 将所有内容都明确出来。 错误处理就是一个例子。让异常在各个点中断代码并在调用链上冒泡会更容易。Go 需要手动处理和返回每个错误。这使得它可以准确地显示代码可以被中断的位置以及如何处理或包装错误。总的来说,这使得错误处理编写起来更加繁琐,但是也更容易理解。 简单易学 Go 是如此的小巧而简单,以至于人们可以在短短几天内就能研究通整个语言及其基本概念。根据我们的经验,培训用不了一个星期(相比于掌握其他语言需要几个月),初学者就能够理解 Go 专家编写的代码,并为之做出贡献。为了方便吸引更多的用户,Go 网站提供了所有必要的教程和深入研究的文章。这些教程在浏览器中运行,允许人们在将 Go 安装到本地计算机上之前就能够学习和使用 Go。 解决之道 Go 强调的是团队之间的合作,而不是个人的自我表达。 在 Go(和 Python)中,所有的语言特性都是相互正交和互补的,通常有一种方法可以做一些事情。如果你想让 10 个 Python 或 Go 程序员来解决同一个问题,你将会得到 10 个相对类似的解决方案。不同的程序员在彼此的代码库中感觉更自在。在查看其他人的代码时,国骂会更少,而且人们的工作可以更好地融合在一起,从而形成了一致的整体,人人都为之感到自豪,并乐于工作。这还避免了大型工程的问题,如: 开发人员认为良好的工作代码很“混乱”,并要求在开始工作之前进行重写,因为他们的思维方式与原作者不同。 不同的团队成员使用不同的语言子集来编写相同代码库的部分内容。 ![image.png](https://ucc.alicdn.com/pic/developer-ecology/e64418f1455d46aaacfdd03fa949f16d.png) 简单、内置的并发性 Go 专为现代多核硬件设计。 目前使用的大多数编程语言(Java、JavaScript、Python、Ruby、C、C++)都是 20 世纪 80 年代到 21 世纪初设计的,当时大多数 CPU 只有一个计算内核。这就是为什么它们本质上是单线程的,并将并行化视为边缘情况的马后炮。通过现成和同步点之类的附加组件来实现,而这些附加组件既麻烦又难以正确使用。第三方库虽然提供了更简单的并发形式,如 Actor 模型,但是总有多个可用选项,结果导致了语言生态系统的碎片化。今天的硬件拥有越来越多的计算内核,软件必须并行化才能高效运行。Go 是在多核处理器时代编写的,并且在语言中内置了简单、高级的 CSP 风格并发性。 面向计算的语言原语 就深层而言,计算机系统接收数据,对其进行处理(通常要经过几个步骤),然后输出结果数据。例如,Web 服务器从客户端接收 HTTP 请求,并将其转换为一系列数据库或后端调用。一旦这些调用返回,它就将接收到的数据转换成 HTML 或 JSON 并将其输出给调用者。Go 的内置语言原语直接支持这种范例: 结构表示数据 读和写代表流式 IO 函数过程数据 goroutines 提供(几乎无限的)并发性 在并行处理步骤之间传输管道数据 因为所有的计算原语都是由语言以直接形式提供的,因此 Go 源代码更直接地表达了服务器执行的操作。 OO — 好的部分 更改基类中的某些内容的副作用 面向对象非常有用。过去几十年来,面向对象的使用富有成效,并让我们了解了它的哪些部分比其他部分能够更好地扩展。Go 在面向对象方面采用了一种全新的方法,并记住了这些知识。它保留了好的部分,如封装、消息传递等。Go 还避免了继承,因为它现在被认为是有害的,并为组合提供了一流的支持。 现代标准库 目前使用的许多编程语言(Java、JavaScript、Python、Ruby)都是在互联网成为当今无处不在的计算平台之前设计的。因此,这些语言的标准库只提供了相对通用的网络支持,而这些网络并没有针对现代互联网进行优化。Go 是十年前创建的,当时互联网已全面发展。Go 的标准库允许在没有第三方库的情况下创建更复杂的网络服务。这就避免了第三方库的常见问题: 碎片化:总是有多个选项实现相同的功能。 膨胀:库常常实现的不仅仅是它们的用途。 依赖地狱:库通常依赖于特定版本的其他库。 未知质量:第三方代码的质量和安全性可能存在问题。 未知支持:第三方库的开发可能随时停止支持。 意外更改:第三方库通常不像标准库那样严格地进行版本控制。 关于这方面更多的信息请参考 Russ Cox 提供的资料 标准化格式 Gofmt 的风格没有人会去喜欢,但人人都会喜欢 gofmt。 ——Rob Pike Gofmt 是一种以标准化方式来格式化 Go 代码的程序。它不是最漂亮的格式化方式,但却是最简单、最不令人生厌的格式化方式。标准化的源代码格式具有惊人的积极影响: 集中讨论重要主题: 它消除了围绕制表符和空格、缩进深度、行长、空行、花括号的位置等一系列争论。 开发人员在彼此的代码库中感觉很自在, 因为其他代码看起来很像他们编写的代码。每个人都喜欢自由地按照自己喜欢的方式进行格式化代码,但如果其他人按照自己喜欢的方式格式化了代码,这么做很招人烦。 自动代码更改并不会打乱手写代码的格式,例如引入了意外的空白更改。 许多其他语言社区现在正在开发类似 gofmt 的东西。当作为第三方解决方案构建时,通常会有几个相互竞争的格式标准。例如,JavaScript 提供了 Prettier 和 StandardJS。这两者都可以用,也可以只使用其中的一个。但许多 JS 项目并没有采用它们,因为这是一个额外的决策。Go 的格式化程序内置于该语言的标准工具链中,因此只有一个标准,每个人都在使用它。 快速编译 ![image.png](https://ucc.alicdn.com/pic/developer-ecology/8a76f3f07f484266af42781d9e7b8692.png) 对于大型代码库来说,它们长时间的编译是促使 Go 诞生的原因。Google 主要使用的是 C++ 和 Java,与 Haskell、Scala 或 Rust 等更复杂的语言相比,它们的编译速度相对较快。尽管如此,当编译大型代码库时,即使是少量的缓慢也会加剧编译的延迟,从而激怒开发人员,并干扰流程。Go 的设计初衷是为了提高编译效率,因此它的编译器速度非常快,几乎没有编译延迟的现象。这给 Go 开发人员提供了与脚本类语言类似的即时反馈,还有静态类型检查的额外好处。 交叉编译 由于语言运行时非常简单,因此它被移植到许多平台,如 macOS、Linux、Windows、BSD、ARM 等。Go 可以开箱即用地为所有这些平台编译二进制文件。这使得从一台机器进行部署变得很容易。 快速执行 Go 的运行速度接近于 C。与 JITed 语言(Java、JavaScript、Python 等)不同,Go 二进制文件不需要启动或预热的时间,因为它们是作为编译和完全优化的本地代码的形式发布的。Go 的垃圾收集器仅引入微秒量级的可忽略的停顿。除了快速的单核性能外,Go 还可以轻松利用所有的 CPU 内核。 内存占用小 像 JVM、Python 或 Node 这样的运行时不仅仅在运行时加载程序代码,每次运行程序时,它们还会加载大型且高度复杂的基础架构,以进行编译和优化程序。如此一来,它们的启动时间就变慢了,并且还占用了大量内存(数百兆字节)。而 Go 进程的开销更小,因为它们已经完全编译和优化,只需运行即可。Go 还以非常节省内存的方式来存储数据。在内存有限且昂贵的云环境中,以及在开发过程中,这一点非常重要。我们希望在一台机器上能够快速启动整个堆栈,同时将内存留给其他软件。 部署规模小 Go 的二进制文件大小非常简洁。Go 应用程序的 Docker 镜像通常比用 Java 或 Node 编写的等效镜像要小 10 倍,这是因为它无需包含编译器、JIT,以及更少的运行时基础架构的原因。这些特点,在部署大型应用程序时很重要。想象一下,如果要将一个简单的应用程序部署到 100 个生产服务器上会怎么样?如果使用 Node/JVM 时,我们的 Docker 注册表就必须提供 100 个 docker 镜像,每个镜像 200MB,那么一共就需要 20GB。要完成这些部署就需要一些时间。想象一下,如果我们想每天部署 100 次的话,如果使用 Go 服务,那么 Docker 注册表只需提供 10 个 docker 镜像,每个镜像只有 20MB,共只需 2GB 即可。大型 Go 应用程序可以更快、更频繁地部署,从而使得重要更新能够更快地部署到生产环境中。 独立部署 Go 应用程序部署为一个包含所有依赖项的单个可执行文件,并无需安装特定版本的 JVM、Node 或 Python 运行时;也不必将库下载到生产服务器上,更无须对运行 Go 二进制文件的机器进行任何更改。甚至也不需要讲 Go 二进制文件包装到 Docker 来共享他们。你需要做的是,只是将 Go 二进制文件放到服务器上,它就会在那里运行,而不用关心服务器运行的是什么。前面所提到的那些,唯一的例外是使用net和os/user包时针对对glibc的动态链接。 供应依赖关系 Go 有意识避免使用第三方库的中央存储库。Go 应用程序直接链接到相应的 Git 存储库,并将所有相关代码下载(供应)到自己的代码库中。这样做有很多好处: 在使用第三方代码之前,我们可以对其进行审查、分析和测试。该代码就和我们自己的代码一样,是我们应用程序的一部分,应该遵循相同的质量、安全性和可靠性标准。 无需永久访问存储依赖项的各个位置。从任何地方(包括私有 Git repos)获取第三方库,你就能永久拥有它们。 经过验收后,编译代码库无需进一步下载依赖项。 若互联网某处的代码存储库突然提供不同的代码,这也并不足为奇。 即使软件包存储库速度变慢,或托管包不复存在,部署也不会因此中断。 兼容性保证 Go 团队承诺现有的程序将会继续适用于新一代语言。这使得将大型项目升级到最新版本的编译器会非常容易,并且可从它们带来的许多性能和安全性改进中获益。同时,由于 Go 二进制文件包含了它们需要的所有依赖项,因此可以在同一服务器上并行运行使用不同版本的 Go 编译器编译的二进制文件,而无需进行复杂的多个版本的运行时设置或虚拟化。 文档 在大型工程中,文档对于使软件可访问性和可维护性非常重要。与其他特性类似,Go 中的文档简单实用: 由于它是嵌入到源代码中的,因此两者可以同时维护。 它不需要特殊的语法,文档只是普通的源代码注释。 可运行单元测试通常是最好的文档形式。因此 Go 要求将它们嵌入到文档中。 所有的文档实用程序都内置在工具链中,因此每个人都使用它们。 Go linter 需要导出元素的文档,以防止“文档债务”的积累。 商业支持的开源 当商业实体在开放式环境下开发时,那么一些最流行的、经过彻底设计的软件就会出现。这种设置结合了商业软件开发的优势——一致性和精细化,使系统更为健壮、可靠、高效,并具有开放式开发的优势,如来自许多行业的广泛支持,多个大型实体和许多用户的支持,以及即使商业支持停止的长期支持。Go 就是这样发展起来的。 缺点 当然,Go 也并非完美无缺,每种技术选择都是有利有弊。在决定选择 Go 之前,有几个方面需要进行考虑考虑。 未成熟 虽然 Go 的标准库在支持许多新概念(如 HTTP 2 Server push 等)方面处于行业领先地位,但与 JVM 生态系统中的第三方库相比,用于外部 API 的第三方 Go 库可能不那么成熟。 即将到来的改进 由于清楚几乎不可能改变现有的语言元素,Go 团队非常谨慎,只在新特性完全开发出来后才添加新特性。在经历了 10 年的有意稳定阶段之后,Go 团队正在谋划对语言进行一系列更大的改进,作为 Go 2.0 之旅的一部分。 无硬实时 虽然 Go 的垃圾收集器只引入了非常短暂的停顿,但支持硬实时需要没有垃圾收集的技术,例如 Rust。 结语 本文详细介绍了 Go 语言的一些优秀的设计准则,虽然有的准则的好处平常看起来没有那么明显。但当代码库和团队规模增长几个数量级时,这些准则可能会使大型工程项目免于许多痛苦。总的来说,正是这些设计准则让 Go 语言成为了除 Java 之外的编程语言里,用于大型软件开发项目的绝佳选择。

有只黑白猫 2020-01-07 14:11:38 0 浏览量 回答数 0

回答

首先,不论是PHP还是JS都不能修改客户端的文件。 你可以在客户端用JS修改XML数据,注意是数据,再传到服务器端用PHP保存成文档。######+1,网页不能允许你修改客户本地内容,得到数据然后后台根据这些数据再去读写服务器上的内容######我可以用js操作vba修改我本地的office文档,这是怎么回事######意识是不管xml放在服务器里面还是我本地的e盘里都不能修改吧?######回复 @業餘碼農 : 映射可能不准确,应该是理解成副本要好点。######回复 @業餘碼農 : 这两天脑壳想了很多。个人理解成,每个用户在处理php等的时候是获取其文档里面的一个映射,然后再处理。你说的fclose,我理解成很多用户在一个服务器里面映射了很多php文档,如果不关闭,每个映射在处理过程中都占用一定内存,但是~!~,如果没个用户使用映射的时间不一样,那么对于fclose就可有可无,因为反正用户使用映射完了传送数据给用户了,打开的文档就自动关闭,是把?######回复 @kog-7 : 而unset,不一定是用来销毁数组的。 也可以用来销毁数组元素的。比如unset( $arr['a'] ); 这样就是纯粹的数组函数了。 关于PHP事件,不知道可不可以这样称呼, PHP只有一种事件,就是请求事件,就是说只有客户端请求它才会响应并执行。 当然如果你在服务器设置了计划任务那就另当别论了。 以上都是我的个人观点。经验之谈。 不一定正确。######回复 @kog-7 : fclose你可能现在看不出作用。 但是大项目的时候,资源优化要做的很全面的。 一个用户读一个文件是1M,1000个用户同时读就是1G,并且占用1000个I/O资源,用完就手动fclose,而不是等到程序结束,这样就能在同一时刻减少I/O占用率( 有时你看到fclose靠近文件末尾,但那里有时并不代表程序结束。特别是面向对象程序设计 )。######回复 @業餘碼農 : 就是点击,或者某个状态生成了激活某处功能。###### 引用来自“kog-7”的答案 我可以用js操作vba修改我本地的office文档,这是怎么回事 百度了一下 : Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic Script。 关键是你能修改别的文档吗? ###### 引用来自“kog-7”的答案 意识是不管xml放在服务器里面还是我本地的e盘里都不能修改吧?  。。呃,关键不在于内存的占用。 而在于I/O的占用。 内存很便宜,但是I/O资源有限,你要知道像百度谷歌这样的大网站,每秒钟都会有几千上万的用户在同时操作。而且一个请求不是一秒就可以完成的。 虽说现在有什么负载均衡的技术,不过算下来,每时段的用户请求也不是小数目 。fclose要养成习惯。数据库也是一样。 遇到大项目就不易出问题。 你说的映射,或者副本,应该可以理解成C语言里的指针。 你可以想象一下,如果某个用户上传了一个100G的文件,如果要删除这个文件,是不是要把它载入内存? 我想不可能吧。  读取也是一样, 通过指针去读取数据流而已。 而不用把整个文件放入内存。 并且单个用户的内存占用是有限制的。所以fclose是省I/O。 ######如果没经过内存的,再要引用他,就要指定相关已被传输的文档,然后找起!!!是不? (限制字数,我分开回答)######同时我理解的js和html也如此,也是向文档请求,然后文档把其代码复制张贴到内存。。。这样子我觉得要容易理解一些,也很容易解释为什么你操作的js是不会反应到本来的js文档中的。。。。同时对于跨内容的传递,比如你说的100g的文档,我理解的是,让这个100g移动的命令是在内存中的,但是命令只是要求其从a文档移动到b文档,不经过内存。。。同时,如果有那种要经过内存的数据,就可以直接引用其值######我说的副本,理解是,比如服务器上有个PHP文档,我在浏览器请求这个php,那么这个php就把其代码复制张贴到内存中运行(所以这个副本跟前面的php就没有关系了),然后内存的代码运行得出一些数据。。######呵呵,不知道I/O是什么东西,都是自学的,这些没看到,读书的时候工科,所以c什么指针的不重要都在睡觉。######  所谓I/O就是输入输出。通俗说,就是硬盘的数据通道。你fopen一次,就占用一个通道(直到程序执行结束或fclose)。硬盘的I/O发展远没有容量发展的快。 所以硬盘容量可以十几个TB但是I/O还是差不多。  你说的副本这个原理,我也说不清楚,我也是自学的。 C语言也只是了解了一下而已。 不论PHP JS HTML都是载入内存来执行的。 但是会不会一个用户载入一个PHP我就不敢肯定了。 不过有一点可以肯定, 你在服务器修改程序,新的请求会得到新的程序执行的结果 。 而不需要重启PHP服务,这应该能证明你说的副本吧。 然后html不算编程语言,是标记语言,你不能说一个html文件是一个程序吧,程序的结果是可变的,纯html 是固定的。js不能操作文档不是因为它被载入内存。 PHP也被载入内存的,任何程序都要载入内存去执行。 关键在于js寄存的浏览器,没有给js操作权限。 js被包裹起来了。 只能通过浏览器去操作cookie之类的有严格限定的文件。 而php的解释器是拥有文件操作权限的。 当然只是有服务器的文件操作权限。 客户端的东西是不能操作的。 至少光凭它自己是不能的。 同样的,js也是不能操作服务器上的东西的。 就算是读取服务器的文件,也是要经过apache之类 的服务器软件来读取的。 js本身只是给服务器发个话。 服务器给不给返回,还是看服务器心情的。 很多东西个人理解会有偏差,我建议你有不理解的地方就查查文档。 比我这种业余的码农更权威。 ######还有就是不管i/O和内存,都是开始说的一个用户占用部分的东西,如果多个用户不是同时解析,那么,,就可以说成是fclose这个可以不写,当然写了最好######额,问下,你什么行业啊,以前学什么专业。。? 专业的书籍我看了一些,但是一两本书说的很少,同时国内的书确实不好,国外的书翻译的又老火。###### 我就是一个业余的爱好者而已。没学过什么专业,也不在什么行业。 纯兴趣。 当然以后就难说了。 老实说,我是最近一年才学的编程。 但是计算基础方面的东西积累了很多年,也有一定的了解了。 你叫我买书来看我真看不下去。 我的方法是,先看视频。 对一门语言有大概了解,然后把文档上的每一条都拿 来琢磨透,然后开发小项目。 当然我也没能吞下文档。 所以才成为业余的。 另外上面这个问题 如果多个用户不是同时请求或者用户很少,自然不需要fclose了。 不过也有可能程序结束没有关闭I/O连接导致进程关闭失败造成僵尸进程, 浪费了资源。也难说的。 ######呵呵,你让我想起了有,不要问我从哪里来,我不也不知道去哪里,我不属于任何地方,未来一切皆有可能的某部电影~~~~###### @kog-7 这是褒奖吗。。。。 ######回复 @Infinity : 改xml的php,写在上面,感觉用了很多重复的话######回复 @業餘碼農 : 那好多人都去提鞋了~我只是好奇好奇,你要是提鞋的,我就是给别人檫菊花的~!~######。。。。要是有个人对自己的身份工作支支吾吾遮遮掩掩,要么他是个特工黑客要么他就是个提鞋的。你觉得我像不像特工呢?######回复 @業餘碼農 : 呵呵,搞那么多标签干嘛嘛,你就是你,我只想了解你是干嘛的。######回复 @kog-7 : 。。。。。。。。。。。。农二代工一代码后代。######就是这个改xml,感觉写多了<?php header("Content-type: text/html; charset=utf-8"); print '<style> body{ background:rgba(223,238,231,0.9); } .error{color:rgb(182,69,69);font-size:60%;} .iput { border:1px solid black;      height:10%; background:rgb(223,238,231); font-family:"Microsoft YaHei",微软雅黑,helvetica; } #word0u { margin-left:2%; float:left; margin-top:5%; font-family:"Microsoft YaHei",微软雅黑,helvetica; } #input0u { list-style-type:none; float:left; margin-top:5%; } </style>'; print "<script> function closef() {window.parent.document.getElementById('screen').style.display='none';} </script>"; print '<body><button  style="cursor:pointer;border:1px;right:0px;top:0px;font-family:arial;font-weight:bolder;position:absolute" onclick="closef()">X</button>  '; $pro=true; if($_SERVER['REQUEST_METHOD']=="POST") { $pro=false;    if(empty($_POST['user'])||empty($_POST['pw'])||empty($_POST['pw2']))    {$pro=true;    print '<span class="error">'.iconv('gb2312','utf-8','请输入用户名和密码').' </span>';}    if(strlen($_POST['user'])>15)    {$pro=true;    print '<span class="error">'.iconv('gb2312','utf-8','用户名要小于5位数').' </span>';}    if(strlen($_POST['pw'])<5)    {$pro=true;    print '<span class="error">'.iconv('gb2312','utf-8','密码要大于5位数').' </span>';}    if(empty($_POST['pw'])!=empty($_POST['pw2']))    {$pro=true;    print '<span class="error">'.iconv('gb2312','utf-8','两次密码输入不一样').' </span>';}  $xmluser=new DOMDocument;  $xmluser->load('euser.xml');  $users=$xmluser->getElementsByTagName('user'); for($i=0;$i<$users->length;$i++) { if($users->item($i)->childNodes->item(0)->nodeValue==$_POST['user']) { $pro=true; print '<p class="error">'.iconv('gb2312','utf-8','有人用了这个用户名').'</p>';; break; } } } if(!$pro) { date_default_timezone_set('Asia/Shanghai');  $log= $xmluser->createElement('log');  $user= $xmluser->createElement('user');  $pw= $xmluser->createElement('pw');  $time=$xmluser->createElement('time'); $usert=$xmluser->createTextNode($_POST['user']); $pwt=$xmluser->createTextNode($_POST['pw']); $da=date("Y-m-d"); $timet=$xmluser->createTextNode($da); $user->appendChild($usert); $pw->appendChild($pwt); $time->appendChild($timet); $log->appendChild($user); $log->appendChild($pw); $log->appendChild($time); $xmluser->documentElement->appendChild($log); $xmluser->save('euser.xml'); print "<h2 style='font-family:微软雅黑,helvetica'>".iconv('gb2312','utf-8','欢迎').$_POST['user']." ".$da." ".iconv('gb2312','utf-8','您已注册')."</h2>"; $uu=$_POST['user']; $pp=$_POST['pw']; print "<script> window.parent.document.getElementById('user').innerHTML='hello<br>$uu'; window.parent.document.getElementById('login').style.display='none'; window.parent.document.getElementById('logon').style.display='none'; window.parent.document.getElementById('cookss').style.display='none'; window.parent.document.getElementById('clears').style.display='inherit'; window.parent.document.getElementById('chat').src='example1.html'; document.cookie='koguser=$uu'; </script></body>"; } else { print "<p style='font-family:arial;font-weight:bold;font-size:150%;letter-spacing:5px;margin-left:auto;margin-right:auto;width:70%;height:10%;text-align:center;margin-top:2%'>welcome</p>"; $_POST=array(); print  "<form action='elog.php' method='post'><ul id='word0u'><li>".iconv('gb2312','utf-8','用户名')."</li><br><li>" .iconv('gb2312','utf-8','密码')."</li><br><li>" .iconv('gb2312','utf-8','再次确认密码')."</li></ul> <ul id='input0u'><li><input class='iput' type='text' name='user' size='20'/></li><br> <li><input class='iput' type='password' name='pw' size='20'/></li><br> <li><input class='iput' type='password' name='pw2' size='20'/></li></ul><div><input style='border:2px solid black;clear:left;font-family:helvetica;background:rgb(223,238,231);margin-left:42%;margin-top:3%;font-size:18px;width:100px;text-align:center' type='submit' value=".iconv('gb2312','utf-8','注册')."></div></form></body>"; } ?> ###### 引用来自“Infinity”的评论首先,不论是PHP还是JS都不能修改客户端的文件。 你可以在客户端用JS修改XML数据,注意是数据,再传到服务器端用PHP保存成文档。 谢谢~

kun坤 2020-06-05 14:27:36 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站