V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
frozenway
V2EX  ›  PHP

有没有永远不会卡顿的浏览器推荐

  •  
  •   frozenway · 2018-01-03 11:42:46 +08:00 · 21994 次点击
    这是一个创建于 2551 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司需要把网站上的数据同步写到局域网的一个数据库上,现在的方案是用写个简单页面,页面用 AJAX 每秒调用一次 PHP 页面,php 程序再获取一下阿里云的服务器上的数据,然后写到局域网的数据库里。逻辑上是没问题的,但是这个数据同步页面要 24 小时不停运行,运行一段时间,浏览器就会卡顿了,IE,谷歌,火狐,360 浏览器都是过了,有没有一款长其运行而不卡的浏览器?

    第 1 条附言  ·  2018-01-03 13:54:17 +08:00
    唉!我猜你们都不理解实际情况吧,怎么这么多人推荐使用计划任务和什么脚本,实际上这个数据同步的小程序并不是技术高深的楼主使用的,而是给一个目不识丁的部门用的,他们平时自己打开自己管理,我通常不在公司的,要是出了什么是,现在他们只需重启电脑和浏览器,要是用你们说的什么定时任务,那作为高级技术的我就没时间做其他更重要的开发咯!
    第 2 条附言  ·  2018-01-03 16:27:01 +08:00
    谢谢各位,楼主我想到更好的办法了,就是在数据同步那台电脑上同时打开 IE,FF,chrome 进行页面 AJAX 触发,php 程序同一时间只接受一个浏览器的请求忽略另外两个浏览器的请求,这样,不管哪个浏览器卡顿了,都不影响数据实时录入到局域网内的数据库了
    160 条回复    2018-04-22 20:35:41 +08:00
    1  2  
    Hsyyfme
        1
    Hsyyfme  
       2018-01-03 11:45:58 +08:00
    我觉得你应该是写个爬虫而不是找不卡顿的浏览器
    meepo3927
        2
    meepo3927  
       2018-01-03 11:48:14 +08:00
    后端的事情,不要为难前端啦
    shapl
        3
    shapl  
       2018-01-03 11:48:23 +08:00
    写个定时任务啊。。。搞页面 ajax 调用干嘛。。。
    moonsola
        4
    moonsola  
       2018-01-03 11:50:09 +08:00   ❤️ 3
    令人窒息的操作。
    PHP 程序所在的服务器加个定时任务,定时访问一下 PHP 页面就可以了
    cxbig
        5
    cxbig  
       2018-01-03 11:51:22 +08:00 via iPhone
    感觉应该是后端的事情
    用 cronjob 来跑脚本
    frozenway
        6
    frozenway  
    OP
       2018-01-03 11:52:46 +08:00
    @Hsyyfme
    @shapl
    @moonsola
    @cxbig
    电脑是 win7 系统,不是 linux
    wxsm
        7
    wxsm  
       2018-01-03 11:54:41 +08:00
    脱裤子放屁
    2ME
        8
    2ME  
       2018-01-03 11:54:49 +08:00
    win 下就直接用计划任务就好了阿 定时执行 php 脚本
    xiaoji24
        9
    xiaoji24  
       2018-01-03 11:56:19 +08:00
    就没有永远的东西,绝对的东西太可怕。。。
    moonsola
        10
    moonsola  
       2018-01-03 11:56:45 +08:00
    win 下就写 bat 文件,调用 ie 访问页面后关闭 ie。用计划任务执行定时执行 bat 文件
    dlrdegk
        11
    dlrdegk  
       2018-01-03 11:58:22 +08:00
    @frozenway #6 这和系统有什么关系?
    shapl
        12
    shapl  
       2018-01-03 11:59:11 +08:00   ❤️ 1


    安利一波。。。
    frozenway
        13
    frozenway  
    OP
       2018-01-03 11:59:23 +08:00
    @2ME win 不能定时到每秒执行一次,上面要求阿里的服务器一有新数据,就马上同步写入到局域网的数据库
    Moker
        14
    Moker  
       2018-01-03 12:00:23 +08:00
    需要实时同步么?不需要的话为什么不导出再导入?
    codermagefox
        15
    codermagefox  
       2018-01-03 12:00:39 +08:00   ❤️ 2
    虽然我同意楼上大家说的,不过我还是想问,你做这种操作难道不是用的 phantomjs?


    http://phantomjs.org/


    这应该就是你想要的吧
    stillsilly
        16
    stillsilly  
       2018-01-03 12:00:44 +08:00
    为什么要在 PC 上做这事,你们公司没有服务器吗……
    linxl
        17
    linxl  
       2018-01-03 12:01:12 +08:00   ❤️ 1
    用 php 自身实现的定时器. https://github.com/huyanping/php_crontab
    frozenway
        18
    frozenway  
    OP
       2018-01-03 12:01:26 +08:00
    @shapl 阿里云的服务器访问不了公司内网的数据库呀
    AsisA
        19
    AsisA  
       2018-01-03 12:01:45 +08:00 via Android
    corn 或者计划任务跑脚本最方便,不行写个程序也好啊…
    frozenway
        20
    frozenway  
    OP
       2018-01-03 12:02:47 +08:00
    @Moker 是要实时的,慢一两分钟就会被投诉
    SuperMild
        21
    SuperMild  
       2018-01-03 12:02:58 +08:00
    所以,你们用普通版本的 win7 当服务器用?
    hljjhb
        22
    hljjhb  
       2018-01-03 12:04:24 +08:00 via Android   ❤️ 3
    令人智息
    wwqgtxx
        23
    wwqgtxx  
       2018-01-03 12:05:00 +08:00 via iPhone
    下载个 curl 或者 wget 写个 bat 文件一秒钟访问一次你的 php 不就得了
    frozenway
        24
    frozenway  
    OP
       2018-01-03 12:05:27 +08:00
    @SuperMild 是的
    frozenway
        25
    frozenway  
    OP
       2018-01-03 12:06:21 +08:00
    @wwqgtxx bat 程序会卡
    SuperMild
        26
    SuperMild  
       2018-01-03 12:08:56 +08:00
    @frozenway 跟领导说说,买个树莓派来玩,分分钟电费都能省回本钱
    laqow
        27
    laqow  
       2018-01-03 12:11:59 +08:00 via Android
    网页应该不能跨域,获取数据和同步到本地应该都是 PHP 做的,这样理论上下个 wget,加个计划任务就可以了
    pq
        28
    pq  
       2018-01-03 12:12:06 +08:00
    除非只浏览静态 html 页面,否则,很难有一款浏览器能在众多恶意的、逻辑混乱的、低效的动态代码折腾下,保持永远流畅。
    wwqgtxx
        29
    wwqgtxx  
       2018-01-03 12:12:36 +08:00 via iPhone
    @frozenway 你调用 wget 或者 curl 的时候用 start 而不是直接启动就绝对不会卡,还是还卡,你要检查你 php 程序是不是哪里有问题了
    misaka19000
        30
    misaka19000  
       2018-01-03 12:16:33 +08:00   ❤️ 17
    虽然我已经懒得黑 PHP 了,但是 PHP 的程序员总是能做出一些让我非常震惊的操作
    hasbug
        31
    hasbug  
       2018-01-03 12:18:16 +08:00
    有,不告诉你
    yangqi
        32
    yangqi  
       2018-01-03 12:20:31 +08:00
    数据库同步用前端 ajax 来同步?这个还是第一次听说,好新鲜啊。你这个正确的姿势就是用数据库自带的同步方案,单向同步很简单,配置一下就行,根本不用写什么代码,防火墙上开一个口就行了,实时同步。
    yulitian888
        33
    yulitian888  
       2018-01-03 12:23:56 +08:00
    正道:做一个爬虫,作为 windows 服务跑起来。
    折中之道:做一个 windows 计划任务,定时执行你们的 php 那个 url
    邪道:定时 ajax 改为定时刷新页面,在页面 load 之后去 ajax 请求你们的 php
    frozenway
        34
    frozenway  
    OP
       2018-01-03 12:30:23 +08:00
    @yangqi 两个数据库结构不一样的,数据是要经过处理后才能写到公司内网的数据库
    frozenway
        35
    frozenway  
    OP
       2018-01-03 12:31:34 +08:00
    @yulitian888 定时任务不能够满足数据实时录入啊
    jason19659
        36
    jason19659  
       2018-01-03 12:34:09 +08:00
    66666666666 用浏览器同步
    Kokororin
        37
    Kokororin  
       2018-01-03 12:34:19 +08:00
    写个 php 脚本 while(true) {}
    maggch
        38
    maggch  
       2018-01-03 12:40:10 +08:00   ❤️ 1
    您这个操作,有毒...
    php01
        39
    php01  
       2018-01-03 12:45:23 +08:00
    cli
    fcten
        40
    fcten  
       2018-01-03 12:48:24 +08:00
    php 可以命令行执行的……
    yulitian888
        41
    yulitian888  
       2018-01-03 12:50:43 +08:00
    @frozenway 说的好像每秒一次 ajax 不是定时任务一样。这种事情,做简单的就是 windows 服务,做复杂的上消息队列。实时性要求高用多线程处理队列,实时性要求极高的话上数据库镜像(阿里云里的数据也是你们自己的吧?)
    Wolther47
        42
    Wolther47  
       2018-01-03 12:52:12 +08:00 via iPhone
    @frozenway #18 那就内网穿透呀
    gclove
        43
    gclove  
       2018-01-03 12:54:18 +08:00
    楼主这令人窒息的操作。。。。

    最起码你也要想到 写 php 守护进程啊,
    再者你这个 ajax 浏览器, 为什么不能写一个 Windows 程序 /服务呢 ?
    xujiang
        44
    xujiang  
       2018-01-03 12:54:43 +08:00
    为何不用数据库同步工具?
    winglight2016
        45
    winglight2016  
       2018-01-03 13:04:49 +08:00
    @xujiang 我也很纳闷,数据同步的活儿,需要这么折腾吗?
    lwbjing
        46
    lwbjing  
       2018-01-03 13:08:55 +08:00
    贵司的技术水平,这年底到了,你就没有点别的想法吗?
    582033
        47
    582033  
       2018-01-03 13:09:42 +08:00
    楼主的思路真可怕..
    LeungJZ
        48
    LeungJZ  
       2018-01-03 13:16:00 +08:00
    这,又特么算是黑了一波 php 还是 js ?


















    楼主,你需要的是一个定时任务。
    windows 也有。
    实在不行就安个虚拟机,在虚拟机里面执行 crontab。比浏览器靠谱多了。
    jasontse
        49
    jasontse  
       2018-01-03 13:16:58 +08:00 via Android
    看这标题我想你是搞错了思路
    skylancer
        50
    skylancer  
       2018-01-03 13:21:22 +08:00
    只能说卤煮和贵司技术能力真的堪忧
    huson
        51
    huson  
       2018-01-03 13:32:55 +08:00
    不就一个 crontab +一个脚本的事情- -
    RubyJack
        52
    RubyJack  
       2018-01-03 13:33:02 +08:00
    这种需求和浏览器能有关系??? 水平之低令人发指
    laoyuan
        53
    laoyuan  
       2018-01-03 13:34:55 +08:00
    php 写个带计时的死循环电脑会不会爆炸?
    chinvo
        54
    chinvo  
       2018-01-03 13:35:55 +08:00
    你需要一个数据库 replication

    和 PHP/Java/JS 无关,高级打字员花样真多……
    flynaj
        55
    flynaj  
       2018-01-03 13:37:35 +08:00
    用浏览器做数据库同步,浏览器卡问题出在操作系统上,换个操作系统。换 android 看看
    neoblackcap
        56
    neoblackcap  
       2018-01-03 13:41:17 +08:00
    不是用个 VPN 就可以了吗?然后弄个什么主从复制啊
    calming
        57
    calming  
       2018-01-03 13:41:53 +08:00
    还有这种操作吗,笑死我了
    Felldeadbird
        58
    Felldeadbird  
       2018-01-03 13:44:50 +08:00
    win 有计划任务。用计划任务执行 PHPCGI 就可以了。
    frozenway
        59
    frozenway  
    OP
       2018-01-03 13:56:41 +08:00
    @flynaj 怎么在电脑上安装安卓系统
    1002xin
        60
    1002xin  
       2018-01-03 14:04:31 +08:00
    令人窒息的问题
    eoo
        61
    eoo  
       2018-01-03 14:06:42 +08:00 via Android
    @laoyuan 不会呀?我就搞了一百个 while(true) 用 supervisor 守护 来玩
    keenwon
        62
    keenwon  
       2018-01-03 14:07:49 +08:00
    重启电脑或者浏览器就能好?那你 js 里直接每隔 10min 刷一下页面不就好了?

    setTimeout(() => {
    location.reload()
    }, 10 * 60 * 1000);
    suduo1987
        63
    suduo1987  
       2018-01-03 14:28:32 +08:00
    确认不是内存泄漏了?
    likuku
        64
    likuku  
       2018-01-03 14:32:51 +08:00
    阿里云机器和你局域网机器用 openvpn 连起来,阿里云机器上直接 crontab 定时跑 php (假若你们只有 php 程序员)执行:
    数据抽取,数据重组为局域网 db 格式,重组后数据写入局域网 db

    是否记录日志什么,自己看需求吧。
    carlclone
        65
    carlclone  
       2018-01-03 14:35:59 +08:00
    来黑 PHPer 的
    linap
        66
    linap  
       2018-01-03 14:38:08 +08:00 via Android
    令人窒息
    CDog34
        67
    CDog34  
       2018-01-03 14:41:30 +08:00
    没有
    summerwar
        68
    summerwar  
       2018-01-03 14:44:16 +08:00
    楼主说的话相互矛盾,一方面说要 24 小时不停运行,一方面又说是其他部门的人管理。

    24 小时不停运行,直接程序访问那个 php 页面,然后解析就可以了,在弄个时钟 1 秒访问一次就行了。

    放给别人管理,程序挂了,重启下浏览器就好了,那跟重启下程序有啥区别?
    oldj
        69
    oldj  
       2018-01-03 15:00:41 +08:00
    你的 JS 里加一段逻辑,比如每 1000 次 Ajax 请求或每 15 分钟,自动刷新一下当前页面,是不是就可以了?
    gouchaoer
        70
    gouchaoer  
       2018-01-03 15:03:17 +08:00
    第一这个数据库同步你为啥不直接使用 mysql 的主从
    第二这个数据展示页面为啥不直接用 phpmyadmin,把账号权限配好没有任何问题
    cnwtex
        71
    cnwtex  
       2018-01-03 15:09:46 +08:00   ❤️ 1
    别用 ajax 啊,你用 meta refresh 就没事了
    goodryb
        72
    goodryb  
       2018-01-03 15:31:19 +08:00
    什么狗屁逻辑,真是看不下去了,搞技术的能不能用点心,数据同步要什么浏览器、php、JS

    还要实时同步,我就问你,这台 windows 电脑要是死机了咋办,万一系统自动更新了咋办

    网络不通就想办法打通网络,再来想怎么同步数据
    achenme
        73
    achenme  
       2018-01-03 15:42:07 +08:00
    别黑了...
    sunber
        74
    sunber  
       2018-01-03 15:47:32 +08:00
    那作为“高级技术”的我就没时间做其他更重要的开发咯!

    。。。
    。。。
    LXVC
        75
    LXVC  
       2018-01-03 15:51:32 +08:00   ❤️ 1
    『目不识丁』不是这么用的。。。
    MaxTan
        76
    MaxTan  
       2018-01-03 15:56:52 +08:00
    感觉程序员被卤煮黑了一波。。。
    banro512
        77
    banro512  
       2018-01-03 15:56:55 +08:00 via Android
    简单的或者明显违背常理的问题,就不要来这里问了,会被喷到怀疑人生。

    单独一个电脑,安装个纯净 chrome,使用 meta 自动刷新,应该能满足
    turan12
        78
    turan12  
       2018-01-03 15:59:34 +08:00
    把页面定时 refresh 一下。
    AlisaDestiny
        79
    AlisaDestiny  
       2018-01-03 15:59:35 +08:00
    我觉得你可以写个 py 脚本打包成 exe.让他们每次启动电脑打开这个软件就行了。
    qcind
        80
    qcind  
       2018-01-03 16:00:43 +08:00
    IE+
    jrient
        81
    jrient  
       2018-01-03 16:14:16 +08:00
    不太明白为什么要用页面请求触发服务器事件
    可能 crontab 是一个摆设把
    jrient
        82
    jrient  
       2018-01-03 16:15:46 +08:00
    “作为高级技术的”楼主,还是多参考参考 v 友们的方案把,浏览器什么的实在是太蠢了。
    laodao1990
        83
    laodao1990  
       2018-01-03 16:24:22 +08:00
    用户不懂也不能这么搞啊,后台写个程序。
    你给他们写一个页面负责开关这个程序不行吗?
    realpg
        84
    realpg  
       2018-01-03 17:24:43 +08:00
    @frozenway #13
    在阿里云服务器搭个 vpn,局域网的服务器连上,完事直接阿里云服务器有新数据往局域网主动写一次
    轮询%……
    jjianwen68
        85
    jjianwen68  
       2018-01-03 17:33:47 +08:00   ❤️ 5
    这确实某种程度上表现了 php 程序猿的水平
    AsisA
        86
    AsisA  
       2018-01-03 17:38:26 +08:00 via Android
    那就写个小程序好了,WinForm 做界面分分钟就好了
    AsisA
        87
    AsisA  
       2018-01-03 17:41:27 +08:00 via Android
    我也写过请求刷新网站的程序,10 分钟开发好,稳定跑了一年多了,浏览器还是有太多不稳定因素了,不推荐用浏览器
    Moker
        88
    Moker  
       2018-01-03 18:02:54 +08:00
    最后的解决方案还真的是........那为了防止电脑卡顿是不是要多开几台电脑防止其中一台电脑死机?
    就是一个同步任务?需要怎么管理?打开或者关闭?
    Go 打包 exe 吧,也不需要什么浏览器,无法理解场景。
    bk201
        89
    bk201  
       2018-01-03 18:04:19 +08:00
    既然出了事情就重启,那你还管卡不卡做什么呢?不要掩饰啥,安安静静写代码不好嘛
    jy02534655
        90
    jy02534655  
       2018-01-03 18:09:20 +08:00
    令人窒息的操作呀
    keysking
        91
    keysking  
       2018-01-03 18:16:07 +08:00
    curl
    htfy96
        92
    htfy96  
       2018-01-03 18:17:48 +08:00
    又黑 PHP
    facetest
        93
    facetest  
       2018-01-03 18:45:20 +08:00 via Android
    如果几个浏览器都卡了呢?
    caola
        94
    caola  
       2018-01-03 18:53:30 +08:00
    wget 不会卡。。。
    LokiSharp
        95
    LokiSharp  
       2018-01-03 19:01:55 +08:00 via iPhone
    如果。。。系统卡了呢?
    j4fun
        96
    j4fun  
       2018-01-03 19:11:34 +08:00
    作为高级技术的”楼主自己开发个不会卡顿的浏览器不是很简单的事情吗~
    Nitromethane
        97
    Nitromethane  
       2018-01-03 19:22:06 +08:00
    为什么不写个程序让服务器自己上报。。。这样还知道服务器是否宕机~
    chinvo
        98
    chinvo  
       2018-01-03 19:31:48 +08:00
    高级技术、高级技术

    惹不起惹不起
    flynaj
        99
    flynaj  
       2018-01-03 20:20:09 +08:00 via Android
    kokutou
        100
    kokutou  
       2018-01-03 20:22:32 +08:00 via Android
    过几天:如何才能让 windows7 不自动重启?? it 强制开了更新补丁,在线等,挺急的,作为高级技术没时间解决这问题。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1782 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 16:26 · PVG 00:26 · LAX 08:26 · JFK 11:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.