公司需要把网站上的数据同步写到局域网的一个数据库上,现在的方案是用写个简单页面,页面用 AJAX 每秒调用一次 PHP 页面,php 程序再获取一下阿里云的服务器上的数据,然后写到局域网的数据库里。逻辑上是没问题的,但是这个数据同步页面要 24 小时不停运行,运行一段时间,浏览器就会卡顿了,IE,谷歌,火狐,360 浏览器都是过了,有没有一款长其运行而不卡的浏览器?
1 Hsyyfme 2018-01-03 11:45:58 +08:00 我觉得你应该是写个爬虫而不是找不卡顿的浏览器 |
![]() | 2 meepo3927 2018-01-03 11:48:14 +08:00 后端的事情,不要为难前端啦 |
![]() | 3 shapl 2018-01-03 11:48:23 +08:00 写个定时任务啊。。。搞页面 ajax 调用干嘛。。。 |
![]() | 4 moonsola 2018-01-03 11:50:09 +08:00 ![]() 令人窒息的操作。 PHP 程序所在的服务器加个定时任务,定时访问一下 PHP 页面就可以了 |
![]() | 5 cxbig 2018-01-03 11:51:22 +08:00 via iPhone 感觉应该是后端的事情 用 cronjob 来跑脚本 |
![]() | 7 wxsm 2018-01-03 11:54:41 +08:00 脱裤子放屁 |
![]() | 8 2ME 2018-01-03 11:54:49 +08:00 win 下就直接用计划任务就好了阿 定时执行 php 脚本 |
![]() | 9 xiaoji24 2018-01-03 11:56:19 +08:00 就没有永远的东西,绝对的东西太可怕。。。 |
![]() | 10 moonsola 2018-01-03 11:56:45 +08:00 win 下就写 bat 文件,调用 ie 访问页面后关闭 ie。用计划任务执行定时执行 bat 文件 |
![]() | 12 shapl 2018-01-03 11:59:11 +08:00 ![]() ![]() 安利一波。。。 |
![]() | 14 Moker 2018-01-03 12:00:23 +08:00 需要实时同步么?不需要的话为什么不导出再导入? |
![]() | 15 codermagefox 2018-01-03 12:00:39 +08:00 ![]() |
![]() | 16 stillsilly 2018-01-03 12:00:44 +08:00 为什么要在 PC 上做这事,你们公司没有服务器吗…… |
17 linxl 2018-01-03 12:01:12 +08:00 ![]() 用 php 自身实现的定时器. https://github.com/huyanping/php_crontab |
19 AsisA 2018-01-03 12:01:45 +08:00 via Android corn 或者计划任务跑脚本最方便,不行写个程序也好啊… |
21 SuperMild 2018-01-03 12:02:58 +08:00 所以,你们用普通版本的 win7 当服务器用? |
![]() | 22 hljjhb 2018-01-03 12:04:24 +08:00 via Android ![]() 令人智息 |
![]() | 23 wwqgtxx 2018-01-03 12:05:00 +08:00 via iPhone 下载个 curl 或者 wget 写个 bat 文件一秒钟访问一次你的 php 不就得了 |
![]() | 27 laqow 2018-01-03 12:11:59 +08:00 via Android 网页应该不能跨域,获取数据和同步到本地应该都是 PHP 做的,这样理论上下个 wget,加个计划任务就可以了 |
![]() | 28 pq 2018-01-03 12:12:06 +08:00 除非只浏览静态 html 页面,否则,很难有一款浏览器能在众多恶意的、逻辑混乱的、低效的动态代码折腾下,保持永远流畅。 |
![]() | 29 wwqgtxx 2018-01-03 12:12:36 +08:00 via iPhone @frozenway 你调用 wget 或者 curl 的时候用 start 而不是直接启动就绝对不会卡,还是还卡,你要检查你 php 程序是不是哪里有问题了 |
![]() | 30 misaka19000 2018-01-03 12:16:33 +08:00 ![]() 虽然我已经懒得黑 PHP 了,但是 PHP 的程序员总是能做出一些让我非常震惊的操作 |
![]() | 31 hasbug 2018-01-03 12:18:16 +08:00 有,不告诉你 |
![]() | 32 yangqi 2018-01-03 12:20:31 +08:00 数据库同步用前端 ajax 来同步?这个还是第一次听说,好新鲜啊。你这个正确的姿势就是用数据库自带的同步方案,单向同步很简单,配置一下就行,根本不用写什么代码,防火墙上开一个口就行了,实时同步。 |
![]() | 33 yulitian888 2018-01-03 12:23:56 +08:00 正道:做一个爬虫,作为 windows 服务跑起来。 折中之道:做一个 windows 计划任务,定时执行你们的 php 那个 url 邪道:定时 ajax 改为定时刷新页面,在页面 load 之后去 ajax 请求你们的 php |
![]() | 35 frozenway OP @yulitian888 定时任务不能够满足数据实时录入啊 |
![]() | 36 jason19659 2018-01-03 12:34:09 +08:00 66666666666 用浏览器同步 |
37 Kokororin 2018-01-03 12:34:19 +08:00 写个 php 脚本 while(true) {} |
![]() | 38 maggch 2018-01-03 12:40:10 +08:00 ![]() 您这个操作,有毒... |
![]() | 39 anteros 2018-01-03 12:45:23 +08:00 cli |
![]() | 40 fcten 2018-01-03 12:48:24 +08:00 php 可以命令行执行的…… |
![]() | 41 yulitian888 2018-01-03 12:50:43 +08:00 @frozenway 说的好像每秒一次 ajax 不是定时任务一样。这种事情,做简单的就是 windows 服务,做复杂的上消息队列。实时性要求高用多线程处理队列,实时性要求极高的话上数据库镜像(阿里云里的数据也是你们自己的吧?) |
![]() | 43 gclove 2018-01-03 12:54:18 +08:00 楼主这令人窒息的操作。。。。 最起码你也要想到 写 php 守护进程啊, 再者你这个 ajax 浏览器, 为什么不能写一个 Windows 程序 /服务呢 ? |
![]() | 44 xujiang 2018-01-03 12:54:43 +08:00 为何不用数据库同步工具? |
![]() | 45 winglight2016 2018-01-03 13:04:49 +08:00 @xujiang 我也很纳闷,数据同步的活儿,需要这么折腾吗? |
![]() | 46 lwbjing 2018-01-03 13:08:55 +08:00 贵司的技术水平,这年底到了,你就没有点别的想法吗? |
![]() | 47 582033 2018-01-03 13:09:42 +08:00 楼主的思路真可怕.. |
![]() | 48 LeungJZ 2018-01-03 13:16:00 +08:00 这,又特么算是黑了一波 php 还是 js ? 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 楼主,你需要的是一个定时任务。 windows 也有。 实在不行就安个虚拟机,在虚拟机里面执行 crontab。比浏览器靠谱多了。 |
49 jasontse 2018-01-03 13:16:58 +08:00 via Android 看这标题我想你是搞错了思路 |
50 skylancer 2018-01-03 13:21:22 +08:00 只能说卤煮和贵司技术能力真的堪忧 |
51 huson 2018-01-03 13:32:55 +08:00 不就一个 crontab +一个脚本的事情- - |
![]() | 52 RubyJack 2018-01-03 13:33:02 +08:00 这种需求和浏览器能有关系??? 水平之低令人发指 |
![]() | 53 laoyuan 2018-01-03 13:34:55 +08:00 php 写个带计时的死循环电脑会不会爆炸? |
![]() | 54 chinvo 2018-01-03 13:35:55 +08:00 你需要一个数据库 replication 和 PHP/Java/JS 无关,高级打字员花样真多…… |
![]() | 55 flynaj 2018-01-03 13:37:35 +08:00 用浏览器做数据库同步,浏览器卡问题出在操作系统上,换个操作系统。换 android 看看 |
56 neoblackcap 2018-01-03 13:41:17 +08:00 不是用个 VPN 就可以了吗?然后弄个什么主从复制啊 |
![]() | 57 calming 2018-01-03 13:41:53 +08:00 还有这种操作吗,笑死我了 |
![]() | 58 Felldeadbird 2018-01-03 13:44:50 +08:00 win 有计划任务。用计划任务执行 PHPCGI 就可以了。 |
![]() | 60 1002xin 2018-01-03 14:04:31 +08:00 令人窒息的问题 |
62 keenwon 2018-01-03 14:07:49 +08:00 重启电脑或者浏览器就能好?那你 js 里直接每隔 10min 刷一下页面不就好了? setTimeout(() => { location.reload() }, 10 * 60 * 1000); |
![]() | 63 suduo1987 2018-01-03 14:28:32 +08:00 确认不是内存泄漏了? |
![]() | 64 likuku 2018-01-03 14:32:51 +08:00 阿里云机器和你局域网机器用 openvpn 连起来,阿里云机器上直接 crontab 定时跑 php (假若你们只有 php 程序员)执行: 数据抽取,数据重组为局域网 db 格式,重组后数据写入局域网 db 是否记录日志什么,自己看需求吧。 |
65 carlclone 2018-01-03 14:35:59 +08:00 来黑 PHPer 的 |
66 linap 2018-01-03 14:38:08 +08:00 via Android 令人窒息 |
![]() | 67 CDog34 2018-01-03 14:41:30 +08:00 没有 |
![]() | 68 summerwar 2018-01-03 14:44:16 +08:00 楼主说的话相互矛盾,一方面说要 24 小时不停运行,一方面又说是其他部门的人管理。 24 小时不停运行,直接程序访问那个 php 页面,然后解析就可以了,在弄个时钟 1 秒访问一次就行了。 放给别人管理,程序挂了,重启下浏览器就好了,那跟重启下程序有啥区别? |
![]() | 69 oldj 2018-01-03 15:00:41 +08:00 你的 JS 里加一段逻辑,比如每 1000 次 Ajax 请求或每 15 分钟,自动刷新一下当前页面,是不是就可以了? |
![]() | 70 gouchaoer 2018-01-03 15:03:17 +08:00 第一这个数据库同步你为啥不直接使用 mysql 的主从 第二这个数据展示页面为啥不直接用 phpmyadmin,把账号权限配好没有任何问题 |
![]() | 71 cnwtex 2018-01-03 15:09:46 +08:00 ![]() 别用 ajax 啊,你用 meta refresh 就没事了 |
![]() | 72 goodryb 2018-01-03 15:31:19 +08:00 什么狗屁逻辑,真是看不下去了,搞技术的能不能用点心,数据同步要什么浏览器、php、JS 还要实时同步,我就问你,这台 windows 电脑要是死机了咋办,万一系统自动更新了咋办 网络不通就想办法打通网络,再来想怎么同步数据 |
73 achenme 2018-01-03 15:42:07 +08:00 别黑了... |
74 sunber 2018-01-03 15:47:32 +08:00 那作为“高级技术”的我就没时间做其他更重要的开发咯! 。。。 。。。 |
![]() | 75 LXVC 2018-01-03 15:51:32 +08:00 ![]() 『目不识丁』不是这么用的。。。 |
76 MaxTan 2018-01-03 15:56:52 +08:00 感觉程序员被卤煮黑了一波。。。 |
77 banro512 2018-01-03 15:56:55 +08:00 via Android 简单的或者明显违背常理的问题,就不要来这里问了,会被喷到怀疑人生。 单独一个电脑,安装个纯净 chrome,使用 meta 自动刷新,应该能满足 |
![]() | 78 turan12 2018-01-03 15:59:34 +08:00 把页面定时 refresh 一下。 |
![]() | 79 AlisaDestiny 2018-01-03 15:59:35 +08:00 我觉得你可以写个 py 脚本打包成 exe.让他们每次启动电脑打开这个软件就行了。 |
![]() | 80 qcind 2018-01-03 16:00:43 +08:00 IE+ |
![]() | 81 jrient 2018-01-03 16:14:16 +08:00 不太明白为什么要用页面请求触发服务器事件 可能 crontab 是一个摆设把 |
![]() | 82 jrient 2018-01-03 16:15:46 +08:00 “作为高级技术的”楼主,还是多参考参考 v 友们的方案把,浏览器什么的实在是太蠢了。 |
![]() | 83 laodao1990 2018-01-03 16:24:22 +08:00 用户不懂也不能这么搞啊,后台写个程序。 你给他们写一个页面负责开关这个程序不行吗? |
![]() | 84 realpg PRO |
85 jjianwen68 2018-01-03 17:33:47 +08:00 ![]() 这确实某种程度上表现了 php 程序猿的水平 |
86 AsisA 2018-01-03 17:38:26 +08:00 via Android 那就写个小程序好了,WinForm 做界面分分钟就好了 |
87 AsisA 2018-01-03 17:41:27 +08:00 via Android 我也写过请求刷新网站的程序,10 分钟开发好,稳定跑了一年多了,浏览器还是有太多不稳定因素了,不推荐用浏览器 |
![]() | 88 Moker 2018-01-03 18:02:54 +08:00 最后的解决方案还真的是........那为了防止电脑卡顿是不是要多开几台电脑防止其中一台电脑死机? 就是一个同步任务?需要怎么管理?打开或者关闭? Go 打包 exe 吧,也不需要什么浏览器,无法理解场景。 |
![]() | 89 bk201 2018-01-03 18:04:19 +08:00 既然出了事情就重启,那你还管卡不卡做什么呢?不要掩饰啥,安安静静写代码不好嘛 |
![]() | 90 jy02534655 2018-01-03 18:09:20 +08:00 令人窒息的操作呀 |
![]() | 91 keysking 2018-01-03 18:16:07 +08:00 curl |
![]() | 92 htfy96 2018-01-03 18:17:48 +08:00 又黑 PHP |
93 facetest 2018-01-03 18:45:20 +08:00 via Android 如果几个浏览器都卡了呢? |
![]() | 94 caola 2018-01-03 18:53:30 +08:00 wget 不会卡。。。 |
![]() | 95 LokiSharp 2018-01-03 19:01:55 +08:00 via iPhone 如果。。。系统卡了呢? |
![]() | 96 j4fun 2018-01-03 19:11:34 +08:00 作为高级技术的”楼主自己开发个不会卡顿的浏览器不是很简单的事情吗~ |
97 Nitromethane 2018-01-03 19:22:06 +08:00 为什么不写个程序让服务器自己上报。。。这样还知道服务器是否宕机~ |
![]() | 98 chinvo 2018-01-03 19:31:48 +08:00 高级技术、高级技术 惹不起惹不起 |
![]() | 99 flynaj 2018-01-03 20:20:09 +08:00 via Android |
![]() | 100 kokutou 2018-01-03 20:22:32 +08:00 via Android 过几天:如何才能让 windows7 不自动重启?? it 强制开了更新补丁,在线等,挺急的,作为高级技术没时间解决这问题。 |