是否可以使用jQuery从服务器重新加载具有相同文件名的图像?
例如,我在页面上有一个图像,但是,物理图像可以根据用户操作而改变.注意,这并不意味着文件名更改,而是实际文件本身.
即:
无论下面的代码被调用的频率如何,同样的问题仍然存在.
$("#myimg").attr("src", "/myimg.jpg");
Run Code Online (Sandbox Code Playgroud)
在jQuery文档中,如果它具有触发事件的默认方法而不是将回调函数绑定到元素的成功/完全加载,那么"load"函数将是完美的.
非常感谢任何帮助.
我最近写了一个相当大的自定义配置组.我很好奇是否可以通过以下方式将此配置移动到单独的文件中:
<configuration>
<configSections>
<sectionGroup name="MyCustomGroup">
<section name="MyCustomSection"/>
</sectionGroup>
</configSections>
<MyCustomGroup file="alt.config" />
</configuration>
Run Code Online (Sandbox Code Playgroud)
这与appSettings的文件属性类似.我意识到很可能需要为我的自定义部分处理程序创建一个ConfigurationPropertyAttribute,但是我在找到这方面的任何示例或方向方面都没有成功.
我正在使用jQuery.getJSON(...)为稍大的数据集进行调用/进程响应.预计响应时间为几秒钟(有一个动画加载图形来安抚用户).
总而言之,加载图形,响应,进程等在所有浏览器中都能正常工作.但是,在Internet Explorer(6/7/8)中,出现"停止运行此脚本"错误.如果允许继续,则脚本完成且没有问题.
$(document).ready(function() {
$("#tree").treeview({ collapsed: true, animated: "slow" });
$("#tree").hide();
$("#loadingGraphic").fadeIn("slow");
$.getJSON("mygenerichandler.ashx", function(data) {
//manipulate data and add to treeview
$("#loadingGraphic").fadeOut("slow", function() {
$("#tree").slideDown("slow");
});
});
});
Run Code Online (Sandbox Code Playgroud)
我意识到这个Internet Explorer有一个可以通过Windows注册表设置的首选项,但是,我很好奇其他开发人员如何在AJAX请求中处理预期的大或慢响应.
这是在Web应用程序环境中:
初始请求能够成功完成,但是任何其他请求都会从NHibernate框架返回"Session is Closed"响应.我正在使用HttpModule方法,代码如下:
public class MyHttpModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.EndRequest += ApplicationEndRequest;
context.BeginRequest += ApplicationBeginRequest;
}
public void ApplicationBeginRequest(object sender, EventArgs e)
{
CurrentSessionContext.Bind(SessionFactory.Instance.OpenSession());
}
public void ApplicationEndRequest(object sender, EventArgs e)
{
ISession currentSession = CurrentSessionContext.Unbind(
SessionFactory.Instance);
currentSession.Dispose();
}
public void Dispose() { }
}
Run Code Online (Sandbox Code Playgroud)
SessionFactory.Instance是我的单例实现,使用FluentNHibernate返回一个ISessionFactory对象.
在我的存储库类中,我尝试使用以下语法:
public class MyObjectRepository : IMyObjectRepository
{
public MyObject GetByID(int id)
{
using (ISession session = SessionFactory.Instance.GetCurrentSession())
return session.Get<MyObject>(id);
}
}
Run Code Online (Sandbox Code Playgroud)
这允许应用程序中的代码被调用:
IMyObjectRepository repo = new MyObjectRepository();
MyObject …Run Code Online (Sandbox Code Playgroud) 我很想知道社区对这个问题的看法.我最近遇到了NHibernate/WCF场景(实体在服务层持久存在)的问题,并意识到我可能在这里走错了方向.
我的问题很明显,当在Web服务(在这种情况下为WCF)后面使用持久对象图(NHibernate,LINQ to SQL等)时,您更喜欢通过网络发送这些实体吗?或者你会创建一组较轻的DTO(没有循环引用)?
我在两个实体(父和子)之间有父子关系.
我的父映射如下:
<class name="Parent" table="Parents">
...
<bag name="Children" cascade="all">
<key column="ParentID"></key>
<one-to-many class="Child"></one-to-many>
</bag>
</class>
Run Code Online (Sandbox Code Playgroud)
我想执行以下操作:
someParent.Children.Remove(someChild);
Run Code Online (Sandbox Code Playgroud)
Child类具有对另一个父类Type的引用.这种关系看起来像
注意:我为上面的非链接url道歉,我似乎无法使用Markup通过url字符串中的星号
由于这种关系,当调用上面的代码而不是DELETE查询时,会生成一个UPDATE查询,该查询从Child表中删除ParentID(设置为null).
当从Parent.Children集合中删除时,是否可以强制NHibernate完全删除子记录?
UPDATE
@ Spencer的解决方案
非常有吸引力的解决方案,因为这可以在未来的课程中实现.但是,由于在存储库模式中处理会话的方式(在我的特定情况下),这几乎是不可能的,因为我们必须根据应用程序传递会话类型(CallSessionContext/WebSessionContext).
@ Jamie的解决方案
简单快速地实施,但是我遇到了另一个障碍.我的子实体看起来如下:
使用新方法时,NHibernate生成一个更新语句,将TypeID和ParentID设置为null,而不是单个删除.如果我错过了实现中的某些内容,请告诉我,因为这种方法可以轻松推进.
@ 此处描述的One-Shot-Delete解决方案概述了取消引用该集合以强制单个删除的想法.与上述结果相同,但发布了更新声明.
//Instantiate new collection and add persisted items
List<Child> children = new List<Child>();
children.AddRange(parent.Children);
//Find and remove requested items from new collection
var childrenToRemove = children
.Where(c => c.Type.TypeID == 1)
.ToList();
foreach (var c in childrenToRemove) { children.Remove(m); }
parent.Children = null;
//Set persisted collection to new list …Run Code Online (Sandbox Code Playgroud) NHibernate新手(我的免责声明).我遇到了一篇关于MVC的类似且有趣的文章,但是,我对在通用Web应用程序中管理NHibernate会话的一般最佳实践更为好奇.
我遇到了Burrow项目,但我开始意识到似乎有几个不同的方向.我知道每次我需要触摸数据库时创建一个新的SessionFactory可能不符合我的最佳利益,所以我对社区管理会话的工作感兴趣.你用Burrow吗?你将SessionFactory包装成单例吗?
任何方向或见解总是非常感激.
在Web应用程序中使用FluentNHibernate,我创建了一个单例SessionFactory类,具有以下功能:
SessionFactory.Instance //returns ISessionFactory
Run Code Online (Sandbox Code Playgroud)
以下是打开/关闭会话的常见/最佳做法吗?
using(ISession session = SessionFactory.Instance.OpenSession())
{
using(ITransaction transaction = session.BeginTransaction())
{
//some operation
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码将存在于给定实体的相应存储库类中.
我注意到有一个主题是创建一个HttpModule来在应用程序的开始和停止时打开会话,但我想知道这是情境还是更常见.
UPDATE
继续使用HttpModule,我有类似的想法:
使用存储库类,我基本上执行以下操作(config使用WebSessionContext):
using(ISession session = SessionFactory.Instance.GetCurrentSession())
{
using(ITransaction transaction = session.BeginTransaction())
{
//some operation
}
}
Run Code Online (Sandbox Code Playgroud) 这可能是不可能的,也可能是显而易见的.
我有一个对象列表(让我们说这个例子的整数):
List<int> list = new List<int>() { 1, 2, 3, 4, 5, 6 };
Run Code Online (Sandbox Code Playgroud)
我希望能够成对分组而不考虑顺序或任何其他比较,返回一个新的IGrouping对象.
即
list.GroupBy(i => someLogicToProductPairs);
Run Code Online (Sandbox Code Playgroud)
我可能正在从错误的角度处理这个问题,但目标是通过恒定的容量对一组对象进行分组.任何帮助是极大的赞赏.
FluentNHibernate = D的新功能
我有一个父/子课程如下:
public class Parent
{
public virtual int ID { get; private set; }
public virtual string Name { get; set; }
public virtual IList<Child> Children { get; set; }
}
public class Child
{
public virtual int ID { get; private set; }
public virtual string Name { get; set; }
public virtual Parent ActiveParent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
使用以下映射:
public ParentMap()
{
Id(x => x.ID);
Map(x => x.Name);
HasMany(x => x.Children)
.Inverse();
.Cascade.All();
} …Run Code Online (Sandbox Code Playgroud) 我在命令窗口中通过Perl脚本生成一个大型XML文档,但是,目前它正在将文档打印到标准输出.Perl脚本修饰符没有允许写入文件的开关,所以我很好奇如何通过基本命令shell获取输入字符串并写入文件.
我目前的运作顺序:
perl dtd2xsd.pl someBigSchema.dtd
以上内容返回了请求的XSD内容,我只是坚持将其转换为文件.
c# ×7
nhibernate ×4
jquery ×2
session ×2
.net ×1
ajax ×1
command-line ×1
dos ×1
dto ×1
grouping ×1
handler ×1
linq ×1
mapping ×1
singleton ×1
web-services ×1