LMLPHP后院

IE和Chrome下INPUT之type为submit时disabled导致Form无法提交技术

maybe yes 发表于 2016-04-17 22:40

记录一个浏览器之间的差异,火狐和 IE,Google Chrome 之间的不同,其他的浏览器就不知道啦,一般开发人员能兼顾的也就只有这三个浏览器啦。

在火狐下开发,当 input 的 type 为 submit 时触发表单提交,如果想在前端体验更好一点点,不要让用户重复点击按钮,有一种做法是将 submit 按钮的的 disabled 设置为 true。这样在火狐下是没有问题的,但是在 IE 和 Chrome 下会导致 Form 表单被阻止提交,原因大家都能想的到,onSubmit 事件触发后执行的动作导致按钮为不可用状态,自然就失效了,无法提交。

解决的方法很简单,去除设置 disabled 为 true 的那行代码。用其他的方式依然可以很好的解决这个问题。比如 setTimeout,比如使用 this.flag 等。定时器解决问题当然是没有问题的,但是实现起来比较麻烦,于是最简单的方法如下示例:

ArchLinux下命令行连接PPTP VPN实战技术

maybe yes 发表于 2016-04-12 12:43

使用 Gnome 主题的网络连接配置添加 PPTP VPN 连接,一直不能连接上服务器,查看日志找问题也找不出问题。也许是 UI 配置太过于复杂,很多配置项弄的人晕头转向,也许是配置错误的问题吧,于是尝试使用命令行来配置连接。下面是在 ArchLinux 上的操作记录。

➜  ~ sudo pacman -S pptpclient
// 推荐使用 pptpsetup 来配置
➜  ~ sudo pptpsetup --create may --server vpn.domain.com --username may --password 123456 --encrypt
➜  ~ sudo pon may debug dump logfd 2 nodetach
➜  ~ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 64:00:6a:57:7a:34 brd ff:ff:ff:ff:ff:ff
    inet 192.168.162.21/24 brd 192.168.162.255 scope global dynamic eno1
       valid_lft 688022sec preferred_lft 688022sec
    inet 192.168.162.101/24 brd 192.168.162.255 scope global secondary eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::6600:6aff:fe57:7a34/64 scope link 
       valid_lft forever preferred_lft forever
➜  ~ ping www.google.com
PING www.google.com (216.58.221.132) 56(84) bytes of data.
^C
--- www.google.com ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 6007ms

➜  ~ sudo pon lml 
➜  ~ ip addr            
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 64:00:6a:57:7a:34 brd ff:ff:ff:ff:ff:ff
    inet 192.168.162.21/24 brd 192.168.162.255 scope global dynamic eno1
       valid_lft 687988sec preferred_lft 687988sec
    inet 192.168.162.101/24 brd 192.168.162.255 scope global secondary eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::6600:6aff:fe57:7a34/64 scope link 
       valid_lft forever preferred_lft forever
41: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1496 qdisc fq_codel state UNKNOWN group default qlen 3
    link/ppp 
    inet 10.10.0.5 peer 10.10.0.1/32 scope global ppp0
       valid_lft forever preferred_lft forever
➜  ~ ping www.google.com               
PING www.google.com (216.58.221.132) 56(84) bytes of data.
^C
--- www.google.com ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 5007ms

➜  ~ sudo ip route add default dev ppp0
➜  ~ ping www.google.com
PING www.google.com (216.58.221.132) 56(84) bytes of data.
64 bytes from hkg07s02-in-f132.1e100.net (216.58.221.132): icmp_seq=1 ttl=52 time=752 ms
64 bytes from hkg07s02-in-f132.1e100.net (216.58.221.132): icmp_seq=2 ttl=52 time=449 ms
64 bytes from hkg07s02-in-f132.1e100.net (216.58.221.132): icmp_seq=3 ttl=52 time=453 ms
64 bytes from hkg07s02-in-f132.1e100.net (216.58.221.132): icmp_seq=4 ttl=52 time=988 ms
64 bytes from hkg07s02-in-f132.1e100.net (216.58.221.132): icmp_seq=6 ttl=52 time=465 ms
^C
--- www.google.com ping statistics ---
7 packets transmitted, 5 received, 28% packet loss, time 6006ms
rtt min/avg/max/mdev = 449.059/621.896/988.647/216.446 ms

Jquery绑定Ajax请求全局错误处理不生效的问题技术

maybe yes 发表于 2016-04-09 16:34

JQuery 拥有强大的 Ajax 功能,如果网站的系统设计足够好,必须有个地方处理全局请求错误处理的,如果每个请求发生错误都单独处理,那是非常可怕的, 设计全局错误处理是非常重要的。

看 JQ 的官方文档,提供了 ajaxError 的错误处理方法,该方法在 Jquery 比较新的后续版本中只支持绑定在 document 上了。看官方文档给人的感觉是,你只能使用 ajax 才能有效,什么 get,post, getJson, getScript 等都不一定会生效,如果想不被全局错误处理干扰,可以设置 global:false。

在使用 ajax 方法请求后,如果全局错误处理方法没有被触发,问题可能在哪里呢?下面列举几种可能,实在没撤,只能下载源码来调试啦。

WinXP VPN连上后能上谷歌不能上Youtube等怎么办技术

maybe yes 发表于 2016-04-09 16:28

在 Windows Xp 系统下,连接上国外 VPN 后,可能会出现能上 Google 但是 YouTube,FaceBook 什么的就不能上了,是不是很奇怪,也有都不能上的情况。

下面转载一些网上的教程,需要修改注册表。

Windows XP 系统连接 PPTP VPN 或 L2TP IPSec VPN 后,会发现 VPN 接口配置的 DNS 的优先级不够而无法对内部主机进行解析(Windows 7 系统不存在此问题)。如果你系统设置的默认 DNS 服务器是国内 DNS 服务器,就会导致虽然已经连上了 VPN 但是无法打开 youtube、twitter,facebook, Flcikr 等网站的现象,这是因为系统默认的 DNS 还是原来的本地连接的国内 DNS,依旧被劫持中。

ArchLinux安装定时任务工具Crontab技术

maybe yes 发表于 2016-04-09 16:06

Linux 定时任务 crontab,如果使用 Ubuntu 等其他发行版,可以很方便的直接使用,根本没有安装这回事。但是 ArchLinux 并没有自带这个功能,需要安装才能使用,官方推荐使用 Cronie。

如果不看官方文档,随便搜索试试也能找到 cronie。但是找到安装之后并不能生效。当你使用 crontab -e 安装了一些任务之后,发现过了好几天都没有动静是不是很生气。

回头再看看 Arch 的 wiki,虽然他们的网站做起来还有点样子,但是文档写的太冗长,看着觉得累。下面就以最简单的几个命令总结如何安装及启动吧。如下所示:

// install
sudo pacman -S cronie

// 开机启动
systemctl enable cronie.service

// 启动
systemctl start cronie.service
2024-12-23 01:46:12 1734889572 0.016488