小编JW.*_*JW.的帖子

检测浏览器何时收到文件下载

我有一个页面,允许用户下载动态生成的文件.生成需要很长时间,所以我想显示一个"等待"指标.问题是,我无法弄清楚如何检测浏览器何时收到文件,所以我可以隐藏指标.

我正在以隐藏的形式发出请求,该请求POST到服务器,并针对其结果定位隐藏的iframe.这样我就不会用结果替换整个浏览器窗口.我在iframe上监听"加载"事件,希望在下载完成后它会触发.

我在文件中返回"Content-Disposition:attachment"标题,这会导致浏览器显示"保存"对话框.但浏览器不会在iframe中触发"加载"事件.

我尝试过的一种方法是使用多部分响应.因此它会发送一个空的HTML文件,以及附加的可下载文件.例如:

Content-type: multipart/x-mixed-replace;boundary="abcde"

--abcde
Content-type: text/html

--abcde
Content-type: application/vnd.fdf
Content-Disposition: attachment; filename=foo.fdf

file-content
--abcde
Run Code Online (Sandbox Code Playgroud)

这适用于Firefox; 它接收空的HTML文件,触发"load"事件,然后显示可下载文件的"Save"对话框.但它在IE和Safari上失败了; IE触发"加载"事件但不下载文件,Safari下载文件(名称和内容类型错误),并且不会触发"加载"事件.

一种不同的方法可能是调用启动文件创建,然后轮询服务器直到它准备就绪,然后下载已经创建的文件.但我宁愿避免在服务器上创建临时文件.

有没有人有更好的主意?

javascript mime http

464
推荐指数
11
解决办法
28万
查看次数

使用单一方法的类 - 最佳方法?

假设我有一个用于执行单个功能的类.执行该功能后,可以将其销毁.有没有理由更喜欢这些方法之一?

// Initialize arguments in constructor
MyClass myObject = new MyClass(arg1, arg2, arg3);
myObject.myMethod();

// Pass arguments to method
MyClass myObject = new MyClass();
myObject.myMethod(arg1, arg2, arg3);

// Pass arguments to static method
MyClass.myMethod(arg1, arg2, arg3);
Run Code Online (Sandbox Code Playgroud)

我故意对细节模糊不清,试图获得针对不同情况的指导方针.但我并没有考虑像Math.random()这样的简单库函数.我正在考虑更多执行某些特定复杂任务的类,但只需要一个(公共)方法来执行它.

c# java oop static-methods

165
推荐指数
6
解决办法
8万
查看次数

我在<a href...>中编码&符号吗?

我正在编写自动生成HTML的代码,我希望它能正确编码.

假设我正在生成指向以下网址的链接:

http://www.google.com/search?rls=en&q=stack+overflow
Run Code Online (Sandbox Code Playgroud)

我假设所有属性值都应该是HTML编码的.(如果我错了,请纠正我.)这意味着如果我将上面的URL放入锚标签,我应该将&符编码为&amp;,如下所示:

<a href="http://www.google.com/search?rls=en&amp;q=stack+overflow">
Run Code Online (Sandbox Code Playgroud)

那是对的吗?

html

154
推荐指数
3
解决办法
5万
查看次数

PHP内存分析

分析PHP页面内存使用情况的好方法是什么?例如,查看我的数据使用了多少内存,和/或哪些函数调用分配的内存最多.

  • xdebug似乎没有在其分析功能中提供内存信息.

  • xdebug 确实在其跟踪功能提供了它.这非常接近我想要的,除了大量的数据是压倒性的,因为它显示了每个函数调用的内存增量.如果可以隐藏一定深度以下的调用,可能使用一些GUI工具,这将解决我的问题.

还有别的事吗?

php memory profiling

92
推荐指数
3
解决办法
5万
查看次数

cordova Android要求失败:"无法找到已安装的Gradle版本"

我正在尝试使用最新的工具构建Cordova Android项目.我按照这里的说明操作:

$ cordova create myApp com.myCompany.myApp myApp
$ cd myApp
$ cordova platform add android@6.2.1 --save
$ cordova requirements android --verbose
Run Code Online (Sandbox Code Playgroud)

但结果是:

Running command: android list targets
Command finished with error code 0: android list,targets

Requirements check results for android:
Java JDK: installed 1.8.0
Android SDK: installed true
Android target: installed android-25,android-23
Gradle: not installed 
Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please …
Run Code Online (Sandbox Code Playgroud)

android cordova

51
推荐指数
7
解决办法
12万
查看次数

从Ant找到工作目录

是否可以告诉用户从哪个目录运行Ant?

例如,我可能只想在当前工作目录中运行单元测试,而不是整个项目的所有测试.

我试过这个:

<property environment="env" />
<echo>${env.CWD}</echo>
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

java ant

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

xcodebuild可以管理自动签名吗?

摘要:

如果您在Xcode 8中打开一个启用了"自动管理签名"的项目和一个新的捆绑ID,它将自动为其创建和下载配置文件.但是我怎么能让同样的事情发生xcodebuild,所以我可以在远程构建服务器上使用它?

细节:

我正在尝试在Mac上构建Cordova应用程序.Cordova将Xcode项目配置为使用"自动管理签名",所以我正在尝试使用它.

我经常更改捆绑包ID,因此我希望Cordova能够使用之前未使用的新捆绑包ID来构建它.

但是当我运行时cordova build ios --release --device --buildConfig build.json,我得到一个返回代码65和以下错误:

Check dependencies
No profiles for 'com.my.bundle.id' were found:  Xcode couldn't find a provisioning profile matching 'com.my.bundle.id'.
Code signing is required for product type 'Application' in SDK 'iOS 10.3'

** ARCHIVE FAILED **

The following build commands failed:
    Check dependencies
(1 failure)
Error: Error code 65 for command: xcodebuild with args: -xcconfig,/cordova-project/platforms/ios/cordova/build-debug.xcconfig,-workspace,MyApp.xcworkspace,-scheme,MyApp,-configuration,Debug,-destination,generic/platform=iOS,-archivePath,MyApp.xcarchive,archive,CONFIGURATION_BUILD_DIR=/cordova-project/platforms/ios/build/device,SHARED_PRECOMPS_DIR=/cordova-project/platforms/ios/build/sharedpch
Run Code Online (Sandbox Code Playgroud)

(我可以手动运行该xcodebuild命令并获得相同的错误,因此它可能不是Cordova问题.)

我的build.json文件如下所示:

{
    "ios": {
        "debug": {
            "codeSignIdentity": "iPhone Developer",
            "developmentTeam": "MY_TEAM_ID", …
Run Code Online (Sandbox Code Playgroud)

xcode ios cordova xcode8

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

PHP中的preg_match和UTF-8

我正在尝试使用preg_match搜索UTF8编码的字符串.

preg_match('/H/u', "\xC2\xA1Hola!", $a_matches, PREG_OFFSET_CAPTURE);
echo $a_matches[0][1];
Run Code Online (Sandbox Code Playgroud)

这应该打印1,因为"H"在字符串"¡Hola!"中的索引1处.但它打印2.所以它似乎并没有将主题视为UTF8编码的字符串,即使我在正则表达式中传递"u" 修饰符.

我在php.ini中有以下设置,其他UTF8函数正在运行:

mbstring.func_overload = 7
mbstring.language = Neutral
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

php unicode pcre utf-8

33
推荐指数
4
解决办法
6万
查看次数

在Subversion中用分支替换trunk

假设人们一直在使用主干和Subversion存储库的分支.我想丢弃主干上的任何更改,并将其替换为分支的副本.

正如另一个问题所示,我可以移动或移除主干,然后将分支复制到主干.但随后树干的历史被分支的历史所取代.如果我想保留行李箱的历史怎么办?

我认为我想要的就是合并,但是忽略了目的地的变化,而只是用源代替.我将如何在Subversion中执行此操作?这被认为是好习惯吗?

svn

30
推荐指数
2
解决办法
3万
查看次数

是什么让一些版本控制系统更好地融合?

我听说许多分布式VCS(git,mercurial等)在合并方面比Subversion等传统方式更好.这是什么意思?他们做了什么样的事情才能让合并变得更好?这些事情可以在传统的VCS中完成吗?

奖金问题:SVN 1.5的合并跟踪水平是否适合公平竞争?

svn git version-control merge mercurial

29
推荐指数
2
解决办法
3339
查看次数

标签 统计

cordova ×2

java ×2

php ×2

svn ×2

android ×1

ant ×1

c# ×1

git ×1

html ×1

http ×1

ios ×1

javascript ×1

memory ×1

mercurial ×1

merge ×1

mime ×1

oop ×1

pcre ×1

profiling ×1

static-methods ×1

unicode ×1

utf-8 ×1

version-control ×1

xcode ×1

xcode8 ×1