小编Ste*_* Lu的帖子

使用jQuery AJAX的WCF REST - 删除/解决相同的源策略

所以我正在尝试创建一个由jQuery调用的C#WCF REST服务.我发现jQuery要求AJAX调用是在相同的源策略下进行的.关于如何进行,我有几个问题.

我已经知道了;
1. JSONP与服务器回调的hacky解决方案
2.拥有跨域代理的服务器开销太多.
3.在浏览器中使用Flash进行调用并在我的WCF服务器根目录下设置crossdomain.xml.

我宁愿不使用这些因为;
1.我不想使用JSON,或者至少我不想限制使用它
2.我想将提供静态页面的服务器与提供应用程序状态的服务器分开.
3.这个时代的闪光是不可能的.

我在想:有没有类似Flash的crossdomain.xml文件适用于jQuery?这个"同源"策略是jQuery的一部分还是特定浏览器中的限制?如果它只是jQuery的一部分,也许我会尝试挖掘代码来解决它.





编辑:
Shreddd得到了相当多的信息,见下文.要在C#中执行此操作,我创建了以下方法,您需要调用所有服务方法:

private void BypassCrossDomain()
{
  WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Origin", "*");
}
Run Code Online (Sandbox Code Playgroud)

重要的是要注意,这允许跨站点脚本攻击,当您需要使用您的请求发送第三方cookie时,您也不能使用"*".

javascript ajax rest jquery cross-domain

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

Eclipse:自动换行到指定的宽度

我希望我的线路,尤其是评论中的线路能够自动管理,这样它们就不会太长.

我记得有一次我有一个配置,vim当我达到72个字符时,我自动将我输入的单词移动到下一行.如果我编辑它,重新排列段落是不够智能的,但这是一个开始.

有什么东西能为我管理这些吗?我倾向于在我的代码中写出非常长的注释,并且通过具有一致的宽度使它们看起来很整洁有帮助,但是这样做总是很痛苦,因为编辑句子通常需要编辑段落的其余部分.

我刚刚发现了Ctrl+ Shift+ F功能.它是惊人的,优于Ctrl+ I,这是我到目前为止使用的,但我注意到它没有做任何事情来清理我的评论.

更新:在Eclipse中使用Java时,答案是正确的.好像我必须等待CDT加入这个功能.

eclipse formatting eclipse-cdt

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

Vim重复点(".")命令缓冲区?

我真的很喜欢YankRing的行为,这让我访问的最后几件事情我已经yanked或deleted或c忌用不假思索.

然而,像这样的补充功能对于.重复命令完全缺失,通常当我输入我真正想要重复的内容时,然后通过按x下来清理某些内容而意外地覆盖该编辑.

通常情况下,我可以通过视觉模式来恢复我刚输入的内容,但这并不理想.

记住过去的几个命令应该很容易.

问题是如何从Vim中提取出任何商店中包含的最后一个命令的表示,.它会在它被吹走之前做什么?

如果它是我所担心的,唯一的方法是让一个插件绑定到每个可以编辑某些东西的命令,并以一种存储我们自己的重复缓冲区的方式对其进行检测.这真的不实用,因为我已经可以想象有多少其他插件会破坏.但是,如果有可能,我仍然真的想要这个功能.

vim

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

C++使用C++ 11分配shared_ptr(std :: shared_ptr):将shared_ptr初始化为临时变量仍然不好吗?

我正在阅读这个答案,作者提到了最佳实践:

避免使用未命名的shared_ptr临时值来保存输入; 要了解为什么这是危险的,请考虑以下示例:

void f(shared_ptr<int>, int); 
int g();

void ok() {
    shared_ptr<int> p(new int(2));
    f(p, g());
}

void bad() {
    f(shared_ptr<int>(new int(2)), g());
}
Run Code Online (Sandbox Code Playgroud)

函数ok遵循字母的准则,而bad构造临时shared_ptr,承认内存泄漏的可能性.由于函数参数是以未指定的顺序计算的,因此可以首先计算new int(2),g()second,如果g抛出异常,我们可能永远不会访问shared_ptr构造函数.<...>

通过使用boost/make_shared.hpp中定义的make_shared或allocate_shared工厂函数,也可以消除上述异常安全问题.这些工厂功能还通过合并分配提供了效率优势.

我想我会开始使用make_shared,但我想知道这一点建议是否仍然适用于C++ 11 shared_ptr.我问,因为我并不完全理解为什么投掷g()会阻止ctor被调用.

c++ pointers smart-pointers shared-ptr c++11

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

启用Aero的BitBlt性能

我希望通过BitBlt获得更多性能以捕获屏幕.当Aero保持启用状态时,仅捕获屏幕的400x400像素区域可将捕获时间从我的计算机上的平均50毫秒(完整1920x1200)减少到大约33毫秒(400x400).这是一个令人失望的低改善.

我唯一的选择是禁用Aero吗?我知道当Aero被禁用时,我可以在全屏幕上获得快速3ms的快速捕捉.

c++ performance winapi bitblt

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

OS X上的printf和%llu vs%lu

可能重复:
如何printf uint64_t?

为什么在我的64位Mac上(我使用的是Clang)uint64_t类型是unsigned long long在64位Ubuntu上的uint64_t类型是unsigned long什么?

这使我很难接到我的printf调用,在两种环境下都不给出编译器警告(或者甚至工作).

我可以尝试使用宏来尽量选择正确的字符串(#define LU无论是%llu%lu,并在这个过程uglifying的printf串位),但在Mac上我有一个64位字长(所以_LP64会被定义UINTPTR_MAX != 0xffffffff),但它仍然long long用于64位int类型.

// printf macro switch (for the uint64_t's)
#if UINTPTR_MAX == 0xffffffff 
   // 32-bit
#  define LU "%llu"
#else 
   // assume 64-bit
   // special case for OS X because it is strange
   // should actually check also for __MACH__ 
#  ifdef __APPLE__
#    define …
Run Code Online (Sandbox Code Playgroud)

c++ macos types integer long-integer

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

CSS3在OSX上的Safari 6中闪烁(但这不是闪烁到白色的问题!)

此问题在iOS或Chrome上不存在,因此它不是与Webkit相关的问题.它似乎特定于OS X 10.8.2上的最新Safari 6.0.2(而不是由Safari 6.0.3附带的10.8.3预览版本12D65修复).我将很快用Safari 6.0.2测试Lion 10.7.5,并且还将在预览版本12D68上进行测试.

http://jsfiddle.net/zrr2b/

这是一个小问题,使问题非常明显.如果你有一台运行ML的Mac,你会发现Chrome和Safari之间存在显着差异,当你移动鼠标时,Safari会闪烁很多.

基本上问题是Safari将间歇性地从JS为单帧绘制目标变换,然后继续过渡动画.这会导致闪烁,但前提是转换处于开始的某个位置.因此,对于CSS3过渡的大多数(非密集使用),错误不会使其丑陋的头部,但如果功能或视觉效果依赖于它平滑地插入到目标(就像我当前的项目那样),这种闪烁是不愉快的.

我已经看过有关闪烁类似的主题和应用非常的风格,以抵消抖动,如所有组合-webkit-backface-visibility: hidden,迫使各父元素获得硬件加速-webkit-transform-style: preserve-3d, -webkit-perspective: 1000以及没有人遗憾的是做任何事情来解决这个特定的Safari浏览器的问题闪烁,即闪烁不是白色或空白,而是闪烁到单个帧的目标变换.

在这个分支中你可以看到我设置了一堆样式,有助于"常规闪烁",但对我没有任何影响.http://jsfiddle.net/zrr2b/1/

由于这不是webkit特定的问题,我不确定在哪里发布错误报告.因为我认为这是一个相当大的问题,所以在10.8.3发布之前得到它会特别好.请记住,这是我们依赖HTML5做的事情,以便它真正杀死Flash.

更新:

  • Mountain Lion 10.8.3 12D68(Retina Macbook Pro 15.4")上的Safari版本6.0.3(8536.28.10)仍然存在此问题
  • Windows上的Safari(5.1.7)不会遇到此错误
  • 在Lion 10.7.5(Macbook Air Mid 2011)上的Safari版本6.0.2(7536.26.17)没有遭受此错误

javascript css safari css3 css-transitions

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

bash -c有不同的参数语义($ 1变成$ 0!)

$ bash -c 'echo "0 is $0 1 is $1"' abc def
0 is abc 1 is def

$ echo 'echo "0 is $0 1 is $1"' > bashtest

$ bash bashtest abc def
0 is bashtest 1 is abc
Run Code Online (Sandbox Code Playgroud)

第二次运行相当于如果我将bash测试变成带有shebang的shellcript然后直接运行它...

基本上我想知道为什么abc并不总是如此$1.它$0在运行时变为bash -c.

bash

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

LLDB:列出源代码

我的一个最常用的gdb命令是l由跟随n后面l -.

我如何在lldb中获得相同的内容?

不是不满意不必键入一些行号刚在某处看到代码.在将大量变量转储到终端之后,我想看看我在代码中的位置.我曾经习惯l -回去看看我在哪里,因为随后的调用l将滚动我(lldb也这样做,但关键是没有响应l -).

也许我错过了一些东西,并且我可以将它放入某种"模式",它将始终在单独的缓冲区中显示相应的源位置.那会很好,但我甚至都没有要求.

c++ debugging gdb lldb

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

iOS OpenGL ES 2.0上的sRGB

根据我能找到的少数相关主题我收集的是,获取正确照明计算的取幂步骤可能必须在iOS应用程序的最终片段着色器中完成.

我一直在使用最新最好的Xcode 5 OpenGL调试器进行分析,并且片段的取幂会占用大量的计算量.这条线在整个着色器中花费的时间最长(其余的性能都被norm点光源所需的各种调用所吸引).

glEnable(GL_FRAMEBUFFER_SRGB);不幸的GL_FRAMEBUFFER_SRGB是,没有宣布的工作.

当然,我应该用于GL ES的实际枚举可能会有所不同.

根据Apple的说法:

仅SGX 543和554处理器支持以下扩展:

EXT_color_buffer_half_float
EXT_occlusion_query_boolean
EXT_pvrtc_sRGB
EXT_shadow_samplers
EXT_sRGB
EXT_texture_rg
OES_texture_half_float_linear

嗯,这很好,没有543或554的最新设备是iPhone 4.

扩展名的文本文件看起来我可以设置SRGB8_ALPHA8_EXTinternalformat参数RenderbufferStorage,但没有说明如何让正常的最终帧缓冲区为我们免费应用sRGB.

现在sRGB校正似乎是获得正确颜色的缺失步骤.我在我的应用程序中处理可怕的"曝光不足"颜色的方法是在片段着色器中手动应用像这样的伽马校正:

mediump float gammaf = 1.0/1.8; // this line declared outside of `main()`
// it specifies a constant 1.8 gamma
mediump vec4 gamma = vec4(gammaf, gammaf, gammaf, 1.0);
gl_FragColor = pow(color, gamma); // last line of `main()`
Run Code Online (Sandbox Code Playgroud)

现在我认识到典型的渲染管道涉及一个或多个渲染到纹理,然后是FS四边形绘制,这将使我有机会使用SRGB8_ALPHA_EXT渲染缓冲区,但是如果没有渲染缓冲区我应该做什么呢?我是SOL吗?

如果是这种情况,那么这个 …

opengl-es ios opengl-es-2.0

9
推荐指数
2
解决办法
3853
查看次数