或者也许我们实施它.我是想要完成整个过程的团队的新手,这似乎让我们的团队中的一些成员感到困惑,包括我.我们得到了我认为的用户验收测试或手动操作列表,您可以点击它们以查看是否一切正常.我认为它会比这简单得多,因为我们只是将应用程序的各个部分分开,并且通常只是查看它会发现巨大的错误.这将不涉及脚本,只需单击每个页面,可能填写东西,确保它提交确定.这让我想到了另一点,在我看来,烟雾测试基本上毫无价值.我会认为相反,你' d有单元测试甚至是自动化测试,它们会通过一个需求列表来确保这类事情正确发生.即使至少没有完成,我认为首先检查代码的开发人员至少会进行一次微型烟雾测试,以确保他们的功能首先起作用.我们在会议中提到了这一点,你可以想象出这种困惑,它让我回到了我的问题,我们将从这种类型的烟雾测试中获得什么价值?
认为这将是非常直接的,但我的价值保持不变(0).
我想做的是当用户收到他们没有读过的消息时递增我的UnreadMessages字段,然后在他们有时删除它.所以我认为像这样的代码会起作用:
var userHelper = new MongoHelper<User>();
//increment
userHelper.Collection.Update(Query.EQ("Id", userId.ToId()), Update.Inc("UnreadMessages", 1));
//decrement
userHelper.Collection.Update(Query.EQ("Id", userId.ToId()), Update.Inc("UnreadMessages", -1));
Run Code Online (Sandbox Code Playgroud)
运行后,不会抛出任何错误,但值也不会改变.不,我不是一个接一个地运行,因为上面的代码可以被解释:)
更新
这是我的帮助类:
public class MongoHelper<T> : Sandbox.Services.IMongoHelper<T> where T : class
{
public MongoCollection<T> Collection { get; private set; }
public MongoHelper()
{
var con = new MongoConnectionStringBuilder(ConfigurationManager.ConnectionStrings["MongoDB"].ConnectionString);
var server = MongoServer.Create(con);
var db = server.GetDatabase(con.DatabaseName);
Collection = db.GetCollection<T>(typeof(T).Name.ToLower());
}
}
Run Code Online (Sandbox Code Playgroud)
感谢特拉维斯的回答我能够解决这个问题:
MongoHelper<UserDocument> userHelper = new MongoHelper<UserDocument>();
var user = userHelper.Collection.FindAndModify(Query.EQ("Username", "a"), SortBy.Null, Update.Inc("MessageCount", 1), true).GetModifiedDocumentAs<UserDocument>();
Run Code Online (Sandbox Code Playgroud) 因为我使用jQuery 1.3+除了一次定时测试之外都使用它.另一个是我在2000年后期发现的普通javascript.我停止了那条路,因为它需要大约150秒来运行测试.我已经阅读了很多与选择单个元素相关的jQuery优化网页.'#id'是使用它的最佳情况,但现在我遇到了在一个包含多个复选框列的相当大的表中检查一列中的所有复选框的问题.
我所做的是设置一个页面,创建20,000个表行和两个复选框列.目标是检查第二列是否花了多长时间,然后取消选中它们,看看花了多长时间.显然我们想要最短的时间.我只使用IE6和7,在我的情况下,我的所有用户都会这样做.
你说20000行?这就是我所说的,但这是生产(从我手中),现在改变为时已晚.我只是试着在时钟上留下1秒的冰雹玛丽.此外,我了解到input.chkbox不是最快的选择器(对于IE7)!:)
问题是,是否有更好的方法来执行此jQuery或其他方式?我喜欢它在我的机器上运行不到半秒钟.
所以你不必重新输入我已经完成的所有废话,这是我提出的测试内容:
4月14日上午更新,包括进一步的时间试验:
<form id="form1" runat="server">
<div>
<a href="#" id="one">input[id^='chkbox'][type='checkbox']</a><br />
<a href="#" id="two">#myTable tr[id^='row'] input[id^='chkbox'][type='checkbox']</a><br />
<a href="#" id="three">#myTable tr.myRow input[id^='chkbox'][type='checkbox']</a><br />
<a href="#" id="four">tr.myRow input[id^='chkbox'][type='checkbox']</a><br />
<a href="#" id="five">input[id^='chkbox']</a><br />
<a href="#" id="six">.chkbox</a><br />
<a href="#" id="seven">input.chkbox</a><br />
<a href="#" id="eight">#myTable input.chkbox</a><br />
<a href="#" id="nine">"input.chkbox", "tr"</a><br />
<a href="#" id="nine1">"input.chkbox", "tr.myRow"</a><br />
<a href="#" id="nine2">"input.chkbox", "#form1"</a><br />
<a href="#" id="nine3">"input.chkbox", "#myTable"</a><br />
<a href="#" id="ten">input[name=chkbox]</a><br />
<a href="#" id="ten1">"input[name=chkbox]", …Run Code Online (Sandbox Code Playgroud) 我想创建一个控件来扩展在GridView中使用的BoundField.我想要做的是提供另一个名为HighlightField的属性,它与DataField属性类似,我想给它命名一个数据列.给定数据列,它将看到值是true还是false,并在给定行的给定列中突出显示给定文本.
一些伪代码如果没有意义:
<asp:GridView id="grid">
<Columns>
<asp:BoundField DataField="Name" />
<cc:HighlightField DataField="Name" HighlightField="IsHighlighted" />
</Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)
然后在数据绑定或其他内容:
if(this row's IsHighlighted value is true)
set the CssClass of this datacell = "highlighted"
(or wrap a span tag around the text)
Run Code Online (Sandbox Code Playgroud)
拉维希指出我正确的方向,这是我最终得到的:
public class HighlightedBoundField : BoundField
{
public string HighlightField
{
get { return ViewState["HighlightField"].ToString(); }
set
{
ViewState["HighlightField"] = value;
OnFieldChanged();
}
}
public override void InitializeCell(DataControlFieldCell cell, DataControlCellType cellType, DataControlRowState rowState, int rowIndex)
{
base.InitializeCell(cell, cellType, rowState, rowIndex);
bool isDataRowAndIsHighlightFieldSpecified = …Run Code Online (Sandbox Code Playgroud) 我正在尝试根据我正在查看的页面来了解如何修改页面的某些部分.我可以使用页面的控制器设置某些元素,但我正在考虑更多关于全局导航菜单(当前正在应用程序的MasterPage中使用RenderAction呈现)活动状态.
就像我在屏幕顶部有一些导航链接(以SO为例)
问题| 标签| 用户| ...
如果我在"问题"区域或页面中,那么我希望"问题"链接以不同的颜色激活.
我不希望有每一页和再加上我不希望在值被发送到我的母版页,然后通过发送的RenderAction它管理这个,因为我认为这会是凌乱.我想要的是Action,只知道渲染页面所在的区域并突出显示必要的元素.
我不想疏远我的用户,但是有多种方式登录该站点会破坏具有OpenID实现的目的.这不是一个全新的网站,有大约3k用户,有些顽固分子(我们有一个很棒的社区),但不是所有人都是,我不想因为登录过程而失去任何人.
有没有一种简单的方法将现有帐户转换为OpenId?或者我将不得不创建某种"与旧帐户相关联".
我想允许我的用户为其活动设置时间表。可能是一天,或者为了方便起见,我希望允许他们指定重复发生的事件(类似于 Outlook 约会)。
对于单个事件,这似乎很简单(伪代码):
只需有一个包含日期的 DateOfEvent 列即可。
要获取未来事件:
从 DateOfEvent > {DateTime.Now} 的事件中选择 *
但是我如何存储和查询重复发生的事件呢?我不需要做时间,因为我只需单独存储它,如果他们需要不同的时间,我只需让他们创建另一个事件。所以不:每周三 5 点和周四 3 点。
例子:
每个周一、周二、周三、周四、周五、每周
每周每个星期三
每个月的第二个星期二
我曾经查询过什么
我添加了开始日期和结束日期。如果用户选择了单个日期,我将开始日期和结束日期都设置为所选日期。我只需稍微修改一下答案的代码。
DECLARE
@StartDate SMALLDATETIME,
@EndDate SMALLDATETIME;
SELECT
@StartDate = '20091129',
@EndDate = '20101220';
SELECT
d.CurrentDate,
m.*
FROM
Calendar AS d
INNER JOIN Meet AS m
ON
(
(d.CurrentDate = m.StartDate AND d.CurrentDate = m.EndDate)
OR d.DaysOfTheMonth = m.DayOfTheMonth
OR (d.DaysOfTheWeek = m.DayOfTheWeek AND COALESCE(m.WeekOfTheMonth, d.WeekOfTheMonth) = d.WeekOfTheMonth)
OR d.DaysOfTheWeek IN (1,7) AND m.OnWeekends = 1
OR …Run Code Online (Sandbox Code Playgroud) 我有以下结构:
public class ThreadDocument
{
public ThreadDocument()
{
Messages = new List<Message>();
Recipients = new List<Recipient>();
}
[JsonIgnore]
public ObjectId Id { get; set; }
public IList<Recipient> Recipients { get; set; }
public IList<Message> Messages { get; set; }
public DateTime LastMessageSent { get; set; }
public string LastSentByUserName { get; set; }
public string LastSentAvatarUrl { get; set; }
public string Snippet { get; set; }
public int MessageCount { get; set; }
}
public class Recipient
{
public …Run Code Online (Sandbox Code Playgroud) mongodb 10gen-csharp-driver mongodb-query mongodb-.net-driver
我的应用程序有三个"全局"的东西:具有lat和lng值的用户位置(如果用户是否登录),以及他们选择的活动(将其视为类别).
我想要发生的是在整个应用程序中使用这些值.每个屏幕都会使用这个日期的一些设置,因此每页加载它不是正确的答案.除非用户创建活动,否则信息也不会更改:不同的位置,活动或登录/退出.
我该如何设置?
我的想法是启动时应该有一个初始加载,在我的main.js文件中我加载每个然后app.start像这样:
siteService.js
define([...], function (...) {
return {
init: function () {
return $.when(
activityService.getStoredActivity(),
locationService.getStoredLocation(),
userService.getUsername()
);
}
}
});
Run Code Online (Sandbox Code Playgroud)
main.js
define([...,'modules/siteService'],function(...,site){...
site.init().then(function () {
app.start().then(function () {
...
app.setRoot('viewmodels/shell', 'entrance');
});
});
Run Code Online (Sandbox Code Playgroud)
});
这确实可以确保加载数据.从我的每个服务中,我将信息存储到本地存储中,因此我不必继续触发AJAX调用.如果不存在本地存储.
当我在其他页面中需要这些数据时,问题会出现.我最终在每个页面的activate方法中调用了我的site.init().then().这很邋.
shell.js
self.activate = function () {
...
siteService.init().then(function (activity, location, username) {
self.activity(activity);
self.location(location);
setUsername(username);
});
return router.activate();
};
Run Code Online (Sandbox Code Playgroud)
然后再次:
welcome.js
this.activate = function () {
site.init().then(function(activity, location) {
loc = location;
act = activity;
load();
});
});
Run Code Online (Sandbox Code Playgroud)
我想最初设置值,每个页面最初从这些值加载,然后使用Durandal的pub/sub对事后的任何更改做出反应.
我只想使用pub/sub,但后来觉得我会遇到鸡和鸡蛋问题,当数据加载相对于页面加载时(IE如果我的AJAX首先加载,我的页面没有加载,事件触发,但页面永远不会得到更新). …
我通过ajax(post)请求将内容放在我的页面上,如下所示:
$("input#ViewMore").click(function() {
var data = { before: oldestDate, threadId: 1 };
$.post("/Message/More", data,function(html) {
$('tbody#posts').prepend(html);
return false;
},
"html");
return false;
});
Run Code Online (Sandbox Code Playgroud)
随着html回来看起来像:
消息输出报价这一切都很好,花花公子,一切都应该出现,没有问题.
当我将一个事件挂钩到通过ajax调用添加的"quote"锚点时,就会出现问题.具体来说,该锚点上的jQuery事件不会触发.为什么?
例如:
$("#quote).click(function() { ... });
Run Code Online (Sandbox Code Playgroud)
什么也没做.像这样的行为没有任何事件.我知道它正在处理页面上没有通过ajax请求添加的其他锚点,所以那里没有代码错误,而且如果我刷新页面,它将会正确触发.有什么理由发生这种情况,我是否需要以某种方式重新初始化锚标记上的事件?有任何想法吗?
使用jQuery 1.3.1(也不适用于1.2.6)所以我认为这是我的实现而不是代码本身.
我目前有一个表(/网格)的数据,我可以页面,筛选和排序.在桌子上我也有一个内置的复选框列.现在,分页,过滤和排序都发生在SQL查询中.我希望能够做的是按复选框列中单击的项目排序.这会将所有检查的项目带到表格的前面.由于复选框本身都是客户端,我不能告诉SQL查询按不存在的列排序(可能我需要动态创建一个?)
本质上我认为会发生的是,复选框ID值将被发送到查询中,SQL查询本身会以某种方式知道按先排序,然后由指定的其他查询排序.
有点像,点击1,2和3:
SELECT*FROM Blah ORDER BY(SELECT ID FROM Blah WHERE ID IN(1,2,3)),AnotherColumnToSort
无论如何,这是计划,任何人都有任何关于如何实现这一目标的想法?
更新:Smack我在Oracle数据库而不是SQL Server,就像我想象的那样.
我有两个要选择的元素
<input id="iMe" /> and <span id="sMe">Blah</span>
Run Code Online (Sandbox Code Playgroud)
我想选择它们:
$("span[id$='Me']") and $("input[id$='Me']")
Run Code Online (Sandbox Code Playgroud)
在一个选择器中.我试过了:
$("span,input[id$='Me']") -> Nope
$("span[id$='Me'],input[id$='Me']") -> Nope
$("span[id$='Me']input[id$='Me']") -> Nope
Run Code Online (Sandbox Code Playgroud)
我不介意只是将它添加到集合中.我绝对不想创建更多的脚本来解决这个问题.有任何想法吗?
目前的设置:
var placeId;
function selectPlace(place) {
$('#selectPlace').html('Selected Place: <b>' + place.Name + '</b>');
$('#map').hide(400);
placeId = place.Id;
}
$(document).ready(function()
{
$('#postMessage').click(function() {
alert("PlaceId: " + placeId);
});
});
Run Code Online (Sandbox Code Playgroud)
可以/我应该使用闭包吗?
javascript ×4
jquery ×3
mongodb ×2
asp.net ×1
asp.net-mvc ×1
c# ×1
closures ×1
date ×1
durandal ×1
durandal-2.0 ×1
knockout.js ×1
openid ×1
oracle ×1
performance ×1
plsql ×1
scheduling ×1
sql ×1
sql-server ×1
testing ×1