我正在为ColdFusion of Wheels编写一个上传功能,需要在完成后对其进行单元测试.我遇到的问题是我不知道如何在ColdFusion中创建一个我可以在单元测试中使用的模拟多部分表单帖子.
我希望能够做的是创建模拟正在上载的文件的模拟请求,然后cffile可以处理,我可以检查.
我在在线ColdFusion帮助中看到了一个使用cfhttp创建这样一个请求的例子,但是它必须发布到另一个页面,这会破坏整个目的.
我有以下JavaScript函数:
function Console() {
this.Log = function(msg) {
if (document.getElementById("console")) {
var console = document.getElementById("console");
console.innerHTML += msg + "<br/>";
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题1: 为什么我需要使用新的关键字?
new Console().Log("hello world");
Run Code Online (Sandbox Code Playgroud)
为什么我不能这样做?
Console().Log("hello world without using new");
Run Code Online (Sandbox Code Playgroud)
问题2:
var logger = function() {
this.log = function(msg) {
new Console().Log(msg);
new Console().Log("log initialized");
}
this.log2 = function(msg) {
new Console().Log(msg);
new Console().Log("log2 initialized");
}
}(); //notice the brackets
Run Code Online (Sandbox Code Playgroud)
由于记录器末尾的(),这不会运行.
new logger().log("hello world");
Run Code Online (Sandbox Code Playgroud)
我知道跟尾()它意味着函数被立即调用,但为什么它不起作用?是因为function(){}(); 不能分配给其他变量?
我有一个文件监视器,它正在从使用utf-16LE编码的不断增长的文件中获取内容.写入它的第一位数据有BOM可用 - 我用它来识别UTF-8的编码(我的文件的MOST编码在其中).我抓住了BOM并重新编码为UTF-8,所以我的解析器并没有吓坏.问题是,由于它是一个不断增长的文件,并不是每一位数据都有BOM.
这是我的问题 - 没有将BOM字节添加到我拥有的每组数据(因为我没有对源的控制)我可以只查找UTF-16\000中固有的空字节,然后使用那作为我的标识符而不是BOM?这会让我头疼吗?
我的架构涉及一个ruby Web应用程序,当我用java编写的解析器拾取它时,将收到的数据记录到一个临时文件中.
现在写我的识别/重新编码代码如下所示:
// guess encoding if utf-16 then
// convert to UTF-8 first
try {
FileInputStream fis = new FileInputStream(args[args.length-1]);
byte[] contents = new byte[fis.available()];
fis.read(contents, 0, contents.length);
if ( (contents[0] == (byte)0xFF) && (contents[1] == (byte)0xFE) ) {
String asString = new String(contents, "UTF-16");
byte[] newBytes = asString.getBytes("UTF8");
FileOutputStream fos = new FileOutputStream(args[args.length-1]);
fos.write(newBytes);
fos.close();
}
fis.close();
} catch(Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
UPDATE
我想支持诸如欧元,em-dashes和其他角色之类的东西.我修改了上面的代码看起来像这样,它似乎传递了我对这些字符的所有测试:
// guess encoding if utf-16 …Run Code Online (Sandbox Code Playgroud) 在以下代码中,如何选择具有以图像结尾的所有<tr>元素?我很茫然...<td>cancelled.png
<table>
<tr> <----- select this whole tr
<td>
<img src="/images/icons/invoice-cancelled.png" alt="cancelled" />
<a href='/orders/invoice.aspx?invoiceid=63'>X1087</a>
</td>
... other tds, some with "-cancelled.png" others with something different
</tr>
....
</table>
Run Code Online (Sandbox Code Playgroud) 我document.getElementById('').innerHTML在页面中使用Java Script进行修改.它在Firefox中运行良好,但不是IE8.请参阅下面的详细信息:
HTML代码:
<table>
<tr id="abc">
<td id="ccc" style="color:red;">ccc</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
Java脚本代码:
document.getElementById('abc').innerHTML = '<td id="bbc" style="color:yellow;">abc</td>'
Run Code Online (Sandbox Code Playgroud)
当我在Firefox中运行JS代码时,它会将显示字从"ccc"更改为"abc",但它只是在IE8中不起作用,有人知道为什么吗?有什么方法可以让我在IE8中工作吗?
我有一个非常基本的问题.我是一名新的iPhone程序员.我的问题是,任何人都可以告诉我如何通过引用obj中的函数来传递值.C?我知道如何在VB和C#中做到这一点.但不知道如何在Obj c中做到这一点.
谢谢
我有一个已排序的JavaScript数组,并希望在数组中再插入一个项目,以便生成的数组保持排序状态.我当然可以实现一个简单的快速插入式插入功能:
var array = [1,2,3,4,5,6,7,8,9];
var element = 3.5;
function insert(element, array) {
array.splice(locationOf(element, array) + 1, 0, element);
return array;
}
function locationOf(element, array, start, end) {
start = start || 0;
end = end || array.length;
var pivot = parseInt(start + (end - start) / 2, 10);
if (end-start <= 1 || array[pivot] === element) return pivot;
if (array[pivot] < element) {
return locationOf(element, array, pivot, end);
} else {
return locationOf(element, array, start, pivot);
}
}
console.log(insert(element, …Run Code Online (Sandbox Code Playgroud) 我在Microsoft Office Document Imaging COM API周围编写了一个OCR包装器库,在本地运行的Console App中,每次测试都可以完美运行.
遗憾的是,当我们尝试将它与在IIS6下作为ASP.Net Web应用程序运行的WCF服务集成时,事情开始变得糟糕.我们在尝试释放MODI COM对象时遇到了问题,网上有很多帮助我们的例子.
但问题仍然存在.如果我重新启动IIS,并重新部署Web应用程序,那么前几次OCR尝试工作得很好.如果我离开它30分钟左右,然后再做另一个请求,我会收到服务器故障错误,如下所示:
服务器抛出异常.(来自HRESULT的异常:0x80010105(RPC_E_SERVERFAULT)):在MODI.DocumentClass.Create(String FileOpen)
从现在开始,每次请求都将无法执行OCR,直到我重置IIS,并且循环再次开始.
我们在自己的应用程序池中运行此应用程序,它以具有本地管理员权限的身份运行.
更新:此问题可以通过在进程外执行OCR操作来解决.似乎MODI库与托管代码不兼容,当涉及到自身清理时,因此为我的情况生成每个OCR请求的新进程运行良好.
以下是执行OCR的功能:
public class ImageReader : IDisposable
{
private MODI.Document _document;
private MODI.Images _images;
private MODI.Image _image;
private MODI.Layout _layout;
private ManualResetEvent _completedOCR = new ManualResetEvent(false);
// SNIP - Code removed for clarity
private string PerformMODI(string fileName)
{
_document = new MODI.Document();
_document.OnOCRProgress += new MODI._IDocumentEvents_OnOCRProgressEventHandler(_document_OnOCRProgress);
_document.Create(fileName);
_document.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
_completedOCR.WaitOne(5000);
_document.Save();
_images = _document.Images;
_image = (MODI.Image)_images[0];
_layout = _image.Layout;
string text = _layout.Text; …Run Code Online (Sandbox Code Playgroud) 如果我找到(或创建)新的PowerShell cmdlet(或函数),如何将其添加到我的计算机?
我不想在一个会话中使用它; 我希望每当我在这台机器上使用PowerShell时它都可用.
在我的网络应用程序中,我有一些用JavaScript编写的复杂对象(即嵌套数组,带有对象的对象内的对象等),我的应用程序的性质依赖于这些.我需要将所有数据发送到PHP,以便我可以将其保存到数据库中.将对象发送到PHP的有效,简单的方法是什么?我尝试过JSON,但是遇到了"过多的递归"等奇怪的错误,我猜这意味着我的对象太复杂了.那么有一个很好的脚本库可以做到这一点吗?提前致谢.
编辑:
那么JSON呢.我尝试更新JSON库无济于事,我现在正在寻找循环引用.
javascript ×3
ajax ×1
algorithm ×1
anonymous ×1
asp.net ×1
cmdlets ×1
coldfusion ×1
dom ×1
function ×1
java ×1
jquery ×1
json ×1
modi ×1
objective-c ×1
ocr ×1
php ×1
powershell ×1
profile ×1
sorting ×1
unit-testing ×1
utf-16 ×1
utf-8 ×1