小编nin*_*nov的帖子

XMLHttpRequest Level 2 - 确定上传是否完成

我正在使用ajax上传文件.上传文件后,php应该检查它(哑剧,大小,病毒(clamscan)等) - 对于较大的文件,这需要几秒钟.当文件上传时,HTML5 <progress>正在填充,当文件准备好并且PHP开始检查时,进度应该切换到不确定.我认为对的方式来做到这一点(这两者都不能正常工作):

检查upload.onload事件

xhr.upload.addEventListener("load", function (e) {
    $("#uploadprogress").attr("value", false);
    $("#uploadprogress").attr("max", false);
    $("#progress").text("Checking file...");
});
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为onload-event在请求准备好时会激活,而不是在上传准备就绪时触发.

检查上传进度百分比= 100%

xhr.upload.addEventListener("progress", function (e) {
    if (e.lengthComputable && e) {
        p = (e.loaded / e.total);
        if (p==1) {
            $("#uploadprogress").attr("value", false);
            $("#uploadprogress").attr("max", false);
            $("#progress").text("Checking file...");
        } else {
            var percent = Math.ceil(p * 1000) / 10;
            $("#uploadprogress").val(e.loaded);
            $("#uploadprogress").attr("max", e.total);
            $("#progress").text("Uploading... " + percent + "%");
        }
   }
}
});
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为上传百分比有时会停止在大约.97%,尽管上传完成,PHP开始处理文件

检查这个还有其他可能吗?

javascript ajax upload xmlhttprequest

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

更改用于AJAX的PhoneGap/Cordova用户代理

我正在使用phonegap/cordova开发Android应用程序.

该应用程序必须读取远程服务器上的文件.因此我正在使用AJAX(jQuery).问题是:远程服务器将所有连接从移动设备重定向到移动版本,这对我不起作用,因此我必须将用户代理更改为桌面浏览器.

我怎样才能做到这一点?我见过iOS的解决方案.Android有可能是这样吗?


编辑: 我自己找到了一个解决方案:

只需添加

WebSettings w = this.appView.getSettings();      
w.setUserAgentString("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1");
Run Code Online (Sandbox Code Playgroud)

/src/com/a/b/c.javaonCreate-方法.

jquery user-agent android cordova

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

MySQL - 按count()和GROUP BY排名

我有我的mysql表posts,我的论坛的所有帖子都存储在那里.就像这样:

id      uid      thread      post      title      text      time
(int)   (int)    (varchar)   (int)     (varchar)  (text)    (int)
Run Code Online (Sandbox Code Playgroud)

现在我想显示用户配置文件的排名(帖子数量排名).我尝试过这样的事情:

set @rownum := 0;
SELECT @rownum := @rownum + 1 AS rank, uid, count(id)
FROM `posts` GROUP BY uid ORDER BY count(id)
Run Code Online (Sandbox Code Playgroud)

但它返回的不是正确的数据.uid和count(id)匹配,但排名是错误的.我的条目是:

rank     uid     count(id)
  1        1        214
Run Code Online (Sandbox Code Playgroud)

我是用户1,我有214个帖子,但这不是排名1.还有其他条目,如:

rank     uid     count(id)
  8       22        674
Run Code Online (Sandbox Code Playgroud)

如何才能使查询得出正确的排名?

mysql group-by count rank

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

MySQL删除"非活动"行

我有两张桌子:

用户

id | 名字| 邮件| 通过| 盐

id | uid | 标题| 文字| 时间戳

现在我要删除所有entries带有a的行uid,这在user-table中是不存在的(已删除的用户)

我认为这可能是这样的:

DELETE entries FROM user, entries WHERE [What comes here? I don't know :(]
Run Code Online (Sandbox Code Playgroud)

mysql sql sql-delete

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