小编Sea*_*son的帖子

首先在页面上模拟浏览器调整大小

我有一个仪表板Web应用程序.它包含一些控件,它们根据浏览器调整大小,并且也可以由用户调整大小.它们是动态创建的,因此,我通过在Session和数据库中存储它们的状态来保持页面回发的维度.

当我的仪表板首次加载时,我有可能将数据从数据库中拉出到监视器上,该监视器与将数据写入数据库时​​的大小不同.控件需要根据之前的比例调整大小.幸运的是,如果控件认为需要重新计算尺寸,控件就能够将自己调整到正确的比例尺寸.

因此,在第一页加载时,我想模拟浏览器调整大小.是否可以在javascript中执行此类操作?

javascript browser

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

使用新创建的文件自动更新WiX安装程序

我在Visual Studio 2010下有一个Web应用程序解决方案.此解决方案的一部分是负责生成.msi安装程序的WiX项目.

我正在阅读WiX教程,试图学习如何在遇到以下内容时自动收集文件:

http://wix.tramontana.co.hu/tutorial/com-expression-syntax-miscellanea/components-of-a-different-color

作为WiX中的工具,Heat用于从各种来源(文件夹,文件,DLL,ActiveX控件,性能计数器,网站)收集数据,其中条目数可能太大而无法手动编写相应的WiX源文件.它的主要目的是运行一次,以收集稍后在源文件的常规维护中使用的数据,而不是一次又一次地在一组不断变化的输入数据上运行的构建环境.如果您仍然希望以第二种方式使用它,则必须非常小心以确保输入中的更改不会引入不受欢迎的效果(主要是破坏组件规则).Heat确实具有帮助您实现这一目标的功能,但在使用时要小心.

好像我不想使用它的主要功能,但是教程只是用我的想法来解释如何做我想要完成的事情.

尝试自动维护WiX安装所安装的文件真的是一个糟糕的主意吗?我厌倦了破碎的构建,其中某人已经编写了一个新文件,但忘记了通过引用该新文件来更新WiX安装程序.

其他人如何处理这种情况?

谢谢.

Re:teasing - 该教程指出'Heat确实具有帮助您实现此目标的功能',但我无法找到所引用的功能.收获项目后 - 下一步是什么?热量是否负责创建我最终将使用的.wxs文件 - 或者我应该只是使用这个文件列表并在事后建立一个功能更强大的.wxs文件?

wix visual-studio-2010

8
推荐指数
2
解决办法
2805
查看次数

array.forEach比本机迭代运行得更快?怎么样?

http://jsperf.com/testing-foreach-vs-for-loop

我的理解是,测试案例2的运行速度应该比测试案例1慢 - 我想看看速度有多慢.当我看到它运行得更快时,想象一下我的惊喜!

这里发生了什么?在幕后优化?或者.forEach更清洁,更快?

在Windows Server 2008 R2/7 64位上以32位Chrome 1.5.0.1025.142进行测试

javascript testing performance

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

为什么我不相信客户端生成的GUID?将PK视为客户端GUID和服务器GUID的组合可以解决任何问题吗?

我正在与Jon Skeet先前的讨论建立起来.

我的方案的要点如下:

  • 客户端应用程序能够创建需要持久保存在数据库中的新"PlaylistItem"对象.
  • 用例需要以这样的方式创建PlaylistItem:客户端在显示PlaylistItem之前不必等待来自服务器的响应.
  • 客户端为PlaylistItem生成UUID,在客户端中显示PlaylistItem,然后向服务器发出save命令.

此时,我理解使用客户端生成的UUID作为数据库中对象的PK是不好的做法.原因是恶意用户可以修改生成的UUID并强制我的数据库上的PK冲突.

为了减轻因在PlaylistItem上强制PK冲突而导致的任何损害,我选择将PK定义为两个ID的组合 - 客户端生成的UUID和服务器生成的GUID.服务器生成的GUID是PlaylistItem的播放列表ID.

现在,我一直在使用这个解决方案,但我不明白为什么/相信我的解决方案比简单地信任客户端ID更好.如果用户能够强制PK collison与另一个用户的PlaylistItem对象,那么我认为我应该假设他们也可以提供该用户的PlaylistId.他们仍然可以强制使用collisons.

是的.做这样的事情的正确方法是什么?允许客户端创建UUID,服务器在成功保存后会竖起大拇指.如果发现冲突,请恢复客户端更改并通知检测到的collison?

guid client-server client-side primary-key composite-key

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

元素的背景图像修改的频率是否有限制?

//  Repaints the progress bar's filled-in amount based on the % of time elapsed for current video.
progressBar.change(function () {
    var currentTime = $(this).val();
    var totalTime = parseInt($(this).prop('max'), 10);

    //  Don't divide by 0.
    var fill = totalTime !== 0 ? currentTime / totalTime : 0;

    //  EDIT: Added this check, testing with it now.
    if (fill < 0 || fill > 1) throw "Wow this really should not have been " + fill;

    var backgroundImage = '-webkit-gradient(linear,left top, right …
Run Code Online (Sandbox Code Playgroud)

javascript css background-image

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

将序列化表单数据和附加数据发布到MVC控制器?

我正在尝试将POST请求发送到我的服务器的其他一些数据.最初,我只发送了几种形式的信息:

$.ajax({
    url: 'SaveAllDetails',
    type: 'POST',
    data: $('form').serialize(),
    dataType: 'json'
});
Run Code Online (Sandbox Code Playgroud)

和MVC控制器方法:

[HttpPost]
public ActionResult SaveAllDetails([Bind(Prefix = "order")]ExistingOrderDetailsModel existingOrderDetailsModel, 
    [Bind(Prefix = "task")]ExistingTaskDetailsModel existingTaskDetailsModel, [Bind(Prefix = "device")]DeviceDetailsModel deviceDetailsModel)
{
    ....
}
Run Code Online (Sandbox Code Playgroud)

这非常有效.MVC的模型绑定器能够正确地反序列化URL编码的字符串.

现在,要求已经改变.我需要发送一个额外的数据数组以及我的三个表单.此数据数组不保存在表单中,并且没有绑定前缀.我需要在同一个Controller方法中完成所有操作,因为所有验证都需要在单个事务中执行.

所以,我现在有:

var subcomponentsGridRows = JSON.stringify(subcomponentsDetailsView.getAllGridData());
var existingOrderDetailsFormData = $('form#existingOrderDetailsForm').serialize();
var existingTaskDetailsFormData = $('form#existingTaskDetailsForm').serialize();
var deviceDetailsFormData = $('form#existingDeviceDetailsForm').serialize()

$.ajax({
    url: 'SaveAllDetails',
    type: 'POST',
    data: {
        existingOrderDetailsModel: existingOrderDetailsFormData,
        existingTaskDetailsModel: existingTaskDetailsFormData,
        deviceDetailsModel: deviceDetailsFormData,
        subcomponentsGridRows: subcomponentsGridRows
    },
    dataType: 'json'
});
Run Code Online (Sandbox Code Playgroud)

这至少有一个原因不起作用.每个表单都表示为URL编码的字符串.subcomponentsGridRows是一个JSON结构.据我所知,MVC模型绑定器无法一次性解密这两种类型的信息.

解决这个问题的好方法是什么?

javascript c# asp.net-mvc

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

为什么要对我的数据库进行异步调用?

我编写了一个与MSSQL数据库交互的服务器.它目前用.NET 4.0编写,并使用NHibernate作为ORM从数据库中检索信息.在阅读有关.NET 4.5和async/await关键字的介绍时,我了解到,遗憾的是,NHibernate不支持async/await.

我不明白为什么向数据库发出异步调用会有所帮助.不是所有请求都在数据库级别排队吗?不同步只是增加失败点而不改进任何东西?

.net c# sql-server asynchronous

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

在为PrincipalContext指定容器后无法找到User

我正在尝试在Active Directory中按用户名查找用户.

这有效:

const string Domain = "SLO1.Foo.Bar.biz";
const string Username = "sanderso";

PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, Domain);
UserPrincipal userPrincipal = UserPrincipal.FindByIdentity(principalContext,  Username);
Run Code Online (Sandbox Code Playgroud)

这不是:

const string Domain = "SLO1.Foo.Bar.biz";
const string Container = "CN=Users,DC=SLO1,DC=Foo,DC=Bar,DC=biz";
const string Username = "sanderso";

PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, Domain, Container);
UserPrincipal userPrincipal = UserPrincipal.FindByIdentity(principalContext, Username);
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

服务器上没有这样的对象.

这是我的ActiveDirectory设置的屏幕截图:

在此输入图像描述

我也尝试使用以下Container:

const string Container = "OU=Users,DC=SLO1,DC=Foo,DC=Bar,DC=biz";
Run Code Online (Sandbox Code Playgroud)

这同样不成功.

如何在访问"用户"容器时指定我的容器?在尝试引入更复杂的需求之前,我尝试将其作为初始的简单设置.所以,我宁愿不满足于这个简单的解决方案,因为我无论如何都要对此进行故障排除,我相信.

c# active-directory userprincipal

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

chrome.runtime是否支持使用可传输对象发布消息?

我正在学习可转移对象:http://updates.html5rocks.com/2011/12/Transferable-Objects-Lightning-Fast

它们看起来非常棒,我想在我的扩展中使用它们来加速将数据从iframe内部传递到iframe之外.

我有这个示例代码工作,但它使用Web Worker:

var s = document.createElement("script");
s.type = "text/js-worker";
s.innerHTML = 'console.log("i ran!");';
document.body.appendChild(s);

var blob = new Blob(Array.prototype.map.call(document.querySelectorAll("script[type=\"text\/js-worker\"]"), function (oScript) {
    return oScript.textContent;
}), { type: "text/javascript" });

var worker = new Worker(window.URL.createObjectURL(blob));

var arrayBuffer = new ArrayBuffer(1);

worker.onmessage = function (oEvent) {
    console.log("Called back by the worker!\n");
};

console.log("worker:", worker);
worker.postMessage(arrayBuffer, [arrayBuffer]);

if (arrayBuffer.byteLength) {
    console.error("nope");
} else {
    console.log("it worked");
}
Run Code Online (Sandbox Code Playgroud)

有没有人有任何关于支持的信息,或支持使用端口的crbug的时间表,如:

var port = chrome.runtime.connect({
    name: 'youTubeIFrameConnectRequest'
});

//port.postMessage -- transferrable …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension transferable

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

在客户端应用程序中保护YouTube v3 API密钥

我正在查看以下指南:https://developers.google.com/youtube/v3/getting-started

与YouTube的API互动的第一步是:

您需要Google帐户才能访问Google Developers Console,请求API密钥并注册您的应用程序.

他们继续展示他们使用密钥的示例:

网址:https: //www.googleapis.com/youtube/v3/videos? id = 7lCDEYXw3mM&key = YOUR_API_KEY&part = snippet,contentDetails,statistics,status

我有一个客户端应用程序,很多人都使用它.该应用程序向YouTube的API发出搜索请求.YouTube的API每天的请求数量限制为5000万次.

由于它是客户端应用程序,因此我的API密钥嵌入到代码中.

今天,恶意用户编写了一些内容来最大化请求: 在此输入图像描述

我想知道我有什么办法可以抵御这种活动.我唯一选择托管服务器,通过我的服务器路由所有对YouTube API的需求,并在太频繁时拒绝请求?

我真的担心实现类似的东西.它会有效地使每个API请求的等待时间加倍,并且还会给服务器增加一笔看似不必要的金额,但可能需要它.

我还有其他选择吗?

谢谢

youtube google-api youtube-api youtube-javascript-api

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