问题列表 - 第31209页

如何在不保持Views活动的情况下实现MVC模式

我想在困难的情况下实现MVC模式.困难在于我的模型(生成事件的实体)是长寿的,而视图(事件的接收者)是短暂的.我的问题是,通过两者之间的连接,长寿模型使我的短暂视图保持活跃,即它们不能被垃圾收集.

  [MODEL] ------- <weak> -------> [VIEW]
     |
 <strong>
     |
     v
[CONTROLLER]
Run Code Online (Sandbox Code Playgroud)

解决此问题的方法是将模型中的连接存储在WeakHashMap <View,Controller>中.这实际上让View被垃圾收集,当发生这种情况时,WeakHashMap也会抛出相应的Controller.也就是说,如果Controller没有对视图进行(强)引用 - 它通常会这样做.在这种情况下,视图通过强引用保持活动状态,直到模型超出范围.

  [MODEL] ------- <weak> -------> [VIEW]
     |                               ^
 <strong>                            |
     |                               |
     v                               |
[CONTROLLER] ----------- <strong> ---/
Run Code Online (Sandbox Code Playgroud)

是否有另一种方法将侦听器连接到我的模型,这些方法不会让我的视图(和控制器)保持活动状态?

更新:回答mdma的问题:Controller保留对View的引用,因为它需要更新View.这个引用可能很弱,但是我想让Controllers成为View类的匿名内部类,在这种情况下,Controller实例具有对View实例的隐式强引用.

java model-view-controller garbage-collection

5
推荐指数
1
解决办法
353
查看次数

在 asp.net 中处理会话超时的最佳方法是什么

有多种方法可以处理会话超时,例如加载函数上的“元刷新”javascript 等。

我想要一些整洁的东西:超时前 5 分钟,警告用户...

我也在考虑只要浏览器打开就保持会话打开(仍然需要弄清楚如何做到这一点......可能是一些带有刷新的 iframe)。

你如何处理会话超时,你认为我应该往哪个方向发展?

c# asp.net session-timeout

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

歧视工会可以相互提及吗?

我正在使用受歧视的联合构建表达式树.以下代码:

type IntExpression =
    | TrueIsOne of BoolExpression

type BoolExpression =
    | LessThan of IntExpression * IntExpression
    | And of BoolExpression * BoolExpression
    | Or of BoolExpression * BoolExpression
    | Bool of bool
Run Code Online (Sandbox Code Playgroud)

抛出错误,因为未定义BoolExpression.交换定义只会导致反向(IntExpression未定义),如您所料.

有没有解决的办法?

recursion f# mutual-recursion discriminated-union

14
推荐指数
2
解决办法
744
查看次数

jquery autocomplete this.source不是函数错误

我在输入字段上实现了自动完成,但是框没有显示,而firebug返回"this.source不是函数".我在同一页面的其他字段上使用了自动完成功能,没有任何问题.(两个textarea的).

我正在使用以下代码进行调试,如果我从脚本文件或Firebug命令行运行,效果相同.

var fakedata = ['test1','test2','test3','test4','ietsanders'];
$("#omschrijving").autocomplete(fakedata);
Run Code Online (Sandbox Code Playgroud)

运行jquery 1.4.2和jquery ui 1.8.2,两个缩小版本.

有没有人知道自动完成如何在textareas上正常工作但导致输入上的这种故障?

错误和堆栈跟踪:

this.source is not a function
http://facturatie.autodealers.nl/dev/resources/js/jquery-ui-1.8.2.custom.min.js
Line 570
close(Object { name="a"})jquery....min.js (regel 570)
close(Object { name="a"}, Object { name="c"})jquery....min.js (regel 570)
response()
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-ui

43
推荐指数
4
解决办法
6万
查看次数

JFreeChart:在鼠标单击时获取数据源值

我有一个显示进程内存状态的JFreeChart实例,初始化如下:

m_data = new TimeSeriesCollection();
TimeSeries vmsize = new TimeSeries("VMSize");
TimeSeries resident = new TimeSeries("Resisdent");
TimeSeries shared = new TimeSeries("Shared memory");
TimeSeries code = new TimeSeries("Code");
TimeSeries data = new TimeSeries("Data");
m_data.addSeries(vmsize);
m_data.addSeries(resident);
m_data.addSeries(shared);
m_data.addSeries(code);
m_data.addSeries(data);
JFreeChart chart = ChartFactory.createTimeSeriesChart("Memory usage", "Time", "Size", m_data, true, true, false);
m_chart = new ChartPanel(chart);
Run Code Online (Sandbox Code Playgroud)

稍后我将值添加到TimeSeriesCollection中的每个TimeSeries.我想以某种方式知道 - 当用户点击图表时 - 与该列相关联的时间,或者甚至更好 - 该值的索引是什么.

我查看了JFreeChart和ChartMouseListener类,但我无法弄清楚如何做到这一点(JFreeChart的文档也非常缺乏,我猜他们试图让人们购买他们的开发人员指南).

java mouse jfreechart

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

NSURLConnection获取URL

我如何在以下方法中获取URL?

- (void)connectionDidFinishLoading:(NSURLConnection*)theConnection 
Run Code Online (Sandbox Code Playgroud)

iphone nsurlconnection

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

jquery在输入值更改时启用提交按钮

这是我的html的一部分

<input type="text" name="age" />
<input type="text" name="poscode" />
<input type="submit" name="submit" value="Next >>" disabled="disabled"/>
Run Code Online (Sandbox Code Playgroud)

这是我的剧本

<script type="text/javascript">
$(function(){
var enable = false;
if($("input[name='age']").val != "")
enable = true;
if($("input[name='poscode']").val != "")
enable = true;
if(enable == true) $("input[name='submit']").attr('disabled', '');
});
</script>
Run Code Online (Sandbox Code Playgroud)

这不起作用,任何想法我做错了什么?

用户填写两个输入的年龄和邮政编码后,提交按钮应该变为活动状态(开始时禁用)

jquery

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

自定义Android Toast中的按钮?

是否可以在Toast中使用按钮?

从理论上讲,是的,因为您可以使用XML中的布局构建自定义Toast,但我尝试在其中放置一个按钮,但无法使其注册单击.有没有人设法做那样的事情?

android button toast android-button

27
推荐指数
4
解决办法
3万
查看次数

mysqli和php获取对象

我有以下代码:

$sql_latest = "SELECT * FROM tbl_latest ORDER BY id DESC LIMIT 0,3 ";

 $results_latest = $mysqli->query($sql_latest);

 while($row = $results_latest->fetch_object())
 {
  echo $row->id;
 }
Run Code Online (Sandbox Code Playgroud)

如何将结果放入数组中,以便我可以执行类似的操作

echo $ row [1]; echo $ row [2]; echo $ row [2];

php oop mysqli

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

BOOST:递归shared_mutex?

似乎Boost的shared_mutex不是递归的..反正这有什么问题吗?(没有重新实现整个东西)

c++ boost-thread

15
推荐指数
2
解决办法
6860
查看次数