小编Joh*_*ohn的帖子

触发链接点击Ajax成功

我需要触发链接点击Ajax成功.我目前拥有的代码是:

jQuery.ajax({
//Ajax Options
success: function(value) {
    jQuery('.parent_selector').html(jQuery(value).find('.child_selector'));
    jQuery('.test-link').trigger('click');
},
error: function() {
    //alert(error);
} });
Run Code Online (Sandbox Code Playgroud)

Ajax部分工作正常,我能够.parent_selector使用Ajax响应数据加载div.在此之后,我需要触发jQuery('.test-link').trigger('click');上面代码中的链接点击.但是,永远不会触发链接点击.要检查,我搬到jQuery('.test-link').trigger('click');jQuery(document).ready(function()才能看到该链接是否被触发页面加载.但它也不适用于那里.我尝试的下一件事是放入jQuery('.test-link').trigger('click');另一个链接的点击事件,如下所示:

jQuery('section[role="main"]').on('click', '.another-link', function(e){
e.preventDefault();

jQuery('.test-link').trigger('click');
Run Code Online (Sandbox Code Playgroud)

});

瞧!,它在另一个链接的点击事件中工作.所以,我真的很困惑我在这里做错了什么.为什么jQuery('.test-link').trigger('click');不想用Ajax成功调用好玩?

ajax jquery

10
推荐指数
1
解决办法
9794
查看次数

如何使用FileReader的异步特性实现进度条和回调

我在for循环中调用了FileReader API来遍历多个文件对象.我正在使用FileReader来显示图像的预览.

function() {
    for (var i in Files) {
        var fileReader = new FileReader();
        fileReader.readAsBinaryString(Files[i]);
        fileReader.onload = function() {

            // do something on FileReader onload

        }

        fileReader.onprogress = function(data) {
            if (data.lengthComputable) {                                            
                var progress = parseInt( ((data.loaded / data.total) * 100), 10 );
                console.log(progress);
            }
        }
    }

    // do something on completion of FileReader process
    // actions here run before completion of FileReader
}
Run Code Online (Sandbox Code Playgroud)

由于FileReader API的异步特性,我遇到了两个问题.首先,onprogress为每个FileReader实例触发事件.这为我提供了每个文件的进度.然而,我打算显示所有文件的总进度而不是单个文件.

其次,我想执行只应在FileReader的所有实例(每个文件一个)完成时执行的操作.目前,由于FileReader是异步运行的,因此操作在FileReader完成任务之前运行.我已经搜索了很多,但却遇到了解决这些问题的方法.任何帮助表示赞赏.

javascript html5 filereader

10
推荐指数
1
解决办法
1万
查看次数

如何在不破坏MySQL数据库的情况下跟踪综合浏览量

我正在尝试使用以下查询跟踪MySQL DB中的网页浏览:

"UPDATE $table SET pageviews = pageviews + 1 WHERE page_id = 1"

这适用于低到中等流量.但是,在高流量时,对DB的持续写入将导致高读/写争用并最终导致DB崩溃.

我已经在Stackoverflow和其他地方阅读了几个QA,其中建议使用MongoDB作为替代方案.但是,这个选择不可用,我必须坚持使用MySQL.此外,我无法控制引擎 - MyISAM或InnoDB(由于基于行的锁定而不是表格,InnoDB的性能更好,如MyISAM的情况).

考虑到上述情况,在不破坏数据库(在数据库或其他情况下)的情况下,跟踪网页浏览的最佳方法是什么?我真的很感谢一个提供代码片段作为起点(如果可行)的答案.

顺便说一下,我正在使用PHP.

更新:@fire在这里有一个很好的解决方案.但是,它需要使用memcache.我正在寻找一些可以轻松实现而无需特定基础知识的东西.这适用于几乎可以在不同托管环境中使用的模块.在第二个想法,我想到的是某种基于cookie或文件日志的实现.我不确定这种实施如何在实践中发挥作用.任何进一步的投入都非常受欢迎

php mysql

8
推荐指数
1
解决办法
3285
查看次数

如何检查远程Git存储库的状态?

我有一个远程Git存储库,我可以通过SSH从本地存储库中推送/拉出.我可以使用Git status命令检查本地仓库上未跟踪/未分页的文件.如何使用远程仓库执行相同的操作?请注意,我不是在寻找本地提交和远程提交之间的区别.

git

7
推荐指数
2
解决办法
1万
查看次数

如何安装官方Git安装附带的子树?

我从http://git-scm.com下载并安装了最新的Git版本1.8.4.2 .我希望可以安装各种第三方Git模块,如Subtree /usr/local/git/contrib.但是,该contrib文件夹内部只包含一个文件夹(completion),没有其他文件或文件夹.

所以我有两个问题:

为什么contrib文件夹中缺少模块?

如何Subtreecontrib文件夹中没有相同的情况下安装?(我更喜欢从官方Git源代码安装Subtree,而不是从https://github.com/apenwarr/git-subtree安装,现在这是一个过时的仓库)

顺便说一下,我正在运行OS X Mavericks

git git-subtree

7
推荐指数
1
解决办法
3968
查看次数

event.preventDefault(); 在jQuery中没有使用.on

截至jQuery 1.7 .live已被弃用并替换为.on.但是,我很难让jQuery .on与之合作event.preventDefault();.在下面的示例中,单击锚标记会将我带到链接页面,而不是阻止跟随链接的默认浏览器操作.

jQuery('.link-container a').on('click', function(event) {
    event.preventDefault();
//do something
});
Run Code Online (Sandbox Code Playgroud)

但是,相同的代码与.live工作没有任何打嗝.

jQuery('.link-container a').live('click', function(event) {
    event.preventDefault();
//do something
});
Run Code Online (Sandbox Code Playgroud)

我正在使用当前附带Wordpress 3.3.1的jQuery 1.7.1版.这里有什么问题?

jquery

4
推荐指数
1
解决办法
7654
查看次数

为多个具有唯一域名的网站实现K8s集群

刚接触 K8s 并面临实施困境。我需要为多个 NGINX-PHP 网站部署一个 K8s 集群,每个网站都有自己的域。托管网站的数量可以定期增加/减少,在任何给定时间部署成百上千。我排除了 PHP 部分以保持问题简单。

场景 1 - 入口处的 vhost 和 SSL 终止

  • 为每个新网站创建一个包含新服务和部署(NGINX pod)的新命名空间
  • 在 NGINX Ingress 上设置虚拟主机,并根据主机名将其路由到负责网站的服务

优点:

  • 每个网站的 Pod/Container 级别隔离

可能是骗局?

  • 每个网站都需要一个新服务和一个部署。这可能会导致成百上千的服务/部署

场景 2 - Pod 级别的 vhost 和 SSL 终止

  • 创建单个 NGINX 服务和一个部署(使用运行单个 NGINX 容器的 pod)
  • 每个 pod 都可以访问共享的 configmap 和 tls-secret,其中包含每个虚拟主机的 NGINX 配置和 tls 证书
  • Ingress 将所有流量路由到 NGINX 服务
  • 运行 NGINX 的 pod 从文档根目录为所需的虚拟主机提供网站内容

优点:

  • 单一服务和部署
  • 状态更少的豆荚

缺点:

  • 添加新网站时,每个 pod 中的 NGINX 实例都需要重新加载以加载新的 vhost config/ssl 证书,从而导致管理噩梦

以上哪种场景更适合?对于给定的问题,还有其他可能的情况吗?

kubernetes

4
推荐指数
2
解决办法
1040
查看次数

在PHP中获取实际的浏览器URL

我需要检索用户在浏览器中看到的实际URL.我在页面加载时运行Ajax请求.因此,正则$_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]表达式返回Ajax请求的请求URL,而不是浏览器中的实际URL.

知道如何获得这个吗?

php

2
推荐指数
1
解决办法
9346
查看次数

PHP json_encode和XSS

这个问题已被多次询问.看到这里,这里这里

基于这些问题的答案,我做了一些测试,我不得不再次提出同样的问题,因为没有一个答案看起来是正确的(至少对我而言).如果我对主题的理解不好,请纠正我.

我正在为一个输出JSON响应的Web应用程序开发API.服务器端响应由json_encodePHP 处理.因为,这将是一个公共API,我希望通过使用API​​的开发者不正确的客户端实现来阻止任何XSS.

对于我的测试,我在服务器端执行了以下操作:

header("Content-Type: application/json", true);
$bad = array('bad_key' => 'alert("hi");');
echo json_encode($bad);
Run Code Online (Sandbox Code Playgroud)

在客户端,我使用jQuery AJAX自动解析收到的JSON.最初这似乎没有显示任何XSS问题.然后我response.bad_key去了eval().

eval(response.bad_key);
Run Code Online (Sandbox Code Playgroud)

这立即导致执行字符串bad_key.我知道使用eval不好,应该避免.但是,这是我所知道的,并不能确保其他开发人员遵循相同的做法.为了避免这种情况,解决方案是执行服务器端编码.为此,让我说我用htmlspecialchars.

header("Content-Type: application/json", true);
$bad = array('bad_key' => htmlspecialchars('alert("hi");'));
echo json_encode($bad);
Run Code Online (Sandbox Code Playgroud)

这虽然它不执行alert("hi");客户端但由于存在而破坏了JS代码&.json_encode使用此处JSON_HEX_QUOT|JSON_HEX_TAG|JSON_HEX_AMP|JSON_HEX_APOS建议的选项也无济于事.

那么如何在这种情况下阻止XSS呢?

javascript php xss json

1
推荐指数
1
解决办法
1379
查看次数

标签 统计

php ×3

git ×2

javascript ×2

jquery ×2

ajax ×1

filereader ×1

git-subtree ×1

html5 ×1

json ×1

kubernetes ×1

mysql ×1

xss ×1