小编Cre*_*esh的帖子

MVP模式:多个Presenter应该解耦还是可以直接通信?

我有一个如下所示的用户界面:

    +--------+---------------+
    | model1 | model details |
    | model2 |     here,     |
    | model3 | loaded as the |
    |        | user selects  |
    |        | a model from  |
    |        |   the left.   |
    |        |               |
    +--------+---------------+
Run Code Online (Sandbox Code Playgroud)

我正在使用MVP 模式来驱动这个用户界面。

我在这里简化了很多,但为了分而治之,我想将 Presenter 分成两个:一个处理左侧视图中的用户手势(用户更改此视图中的模型列表,例如排序)另一个 Presenter 处理右侧视图中的用户手势(用户更改此视图中的单个模型)。

左侧的演示器与整个模型列表交互,而右侧的演示器仅与单个模型交互:用户从左侧列表中选择的模型。IOW ui 是从左到右驱动的。

用户选择(即单击)左侧的模型后,我当前的实现如下所示(大致):

LeftPresenter.onModelClick = function(event) {
    var model = this.getModelFromEvent(event);
    this.view.setSelectedModel(model); // updates list widget on left
    RightPresenter.setSelectedModel(model); // notify the other Presenter
}

RightPresenter.setSelectedModel = function(model) {
    // …
Run Code Online (Sandbox Code Playgroud)

model-view-controller mvp mvvm

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

PostBackUrl在Html按钮上不可用

我们目前正在执行使用一个跨网页提交PostBackUrlasp:Button:

<asp:Button runat="server" PostBackUrl="processing.aspx" />
Run Code Online (Sandbox Code Playgroud)

生成这个javascript的onclick东西:

<input type="submit" name="ctl03"
    onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('ctl03', ', false, ', 'processing.aspx', false, false))" />
Run Code Online (Sandbox Code Playgroud)

我们希望将其切换为使用普通ol' <button runat="server">(更容易设计),但PostBackUrl不支持它们.

所以我想:如果只是在我的<button>元素中使用所说的JavaScript 怎么办?

<button runat="server" name="ctl03"
    onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('ctl03', '', false, '', 'processing.aspx', false, true))">
</button>
Run Code Online (Sandbox Code Playgroud)

并且waddayaknow,它的工作原理.

有没有人见过这件事呢?如果我继续这样做会给我或我的孩子带来什么伤害?

javascript asp.net postback

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

谁负责编码字符串?

谁负责编码字符串,模型或视图?

我有一个来自数据库的字符串,它来自用户 - 我想在数据库中保留尽可能多的信息,所以我逐字保存输入.

当我来显示字符串时,我应该在填充视图模型时对其进行编码,还是视图决定是否要显示它是否编码?

谢谢,
K

asp.net-mvc separation-of-concerns

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

如何使用/实现服务器端的JavaScript?

我很长时间都知道服务器端的javascript,但我不知道它是如何工作的.有人能指出我正确的方向吗?

我对如何使用服务器端javascript + Java Servlet技术感兴趣

编辑

大!我以前见过这些技术,但由于某种原因我没有将它们与"服务器端"javascript相关联(doh!)

补充问题:如果我想使用javascript库来创建内容(例如ExtJs),我是否可以像在客户端一样在服务器端修改"文档"?

(我想我会在第一次尝试时发现)

javascript java serverside-javascript

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

找到所有图像链接并为其添加一个类

如果我有一堆链接到这样的图像:

<a href="foo.png">foo.png</a> <a href="foo.jpg">foo.jpg</a> <a href="foo.gif">foo.gif</a>
Run Code Online (Sandbox Code Playgroud)

我如何用js找到它然后添加一个类?

这是我在想的但是没有用:

$('a[href*=.png]').addClass('image-link');
$('a[href*=.jpg]').addClass('image-link');
$('a[href*=.gif]').addClass('image-link');
Run Code Online (Sandbox Code Playgroud)

更新:我的js中有一个拼写错误.以上工作.

jquery

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

JavaScript代码压缩

有压缩JavaScript代码的方法吗?

例如

function test(){
  // some code here 
}
Run Code Online (Sandbox Code Playgroud)

压缩之后应该是

function test(){//some code here} 
Run Code Online (Sandbox Code Playgroud)

此外,在编辑代码时我需要反之亦然.

javascript

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

为什么jQuery在其构造函数实现中执行此操作?

如果我们在http://code.jquery.com/jquery-latest.js上查看最新的jQuery源代码,我们会看到以下内容:

var jQuery = function( selector, context ) {
    // The jQuery object is actually just the init constructor 'enhanced'
    return new jQuery.fn.init( selector, context );
}
Run Code Online (Sandbox Code Playgroud)

我对Javascript中新关键字的理解本质上是JavaScript将函数传递给一个空对象{},函数通过它设置东西this.blah.

从我的理解也new不同于.call/ .applyetc ..因为返回对象也将原型设置为函数的原型.因此返回值应该具有与jQuery.prototype.init.prototype(或jQuery.fn.init.prototype)相同的原型.然而,从我看到它的原型被设置为jQuery.prototype因此所有可用于该集合的命令.

为什么是这样?我的理解中缺少什么?

javascript jquery

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

不包含格式的HTML元素

我一直在用JavaScript修改网页上的一些文字.我希望文本与其他元素一致,例如文本,输入等.我应该使用哪些HTML元素?双方<div><p>创造新线和其他东西.<b>有点做我想要的,但它大胆的所有文字.什么是正确的选择?

html tags formatting

5
推荐指数
3
解决办法
4418
查看次数

JS onunload事件并不总是有效

我想计算访问者在某个页面上花费多少时间并将其存储在我的MySQL数据库中.

我想在window.onload上启动一个计时器就像这样:

window.onload= startCount;
window.onunload= sendCount;

var b=0;
var y;
function startCount() {
    document.getElementById('livecount').innerHTML=b;
    b=b+1;
    y=setTimeout("startCount()",1000);
}
Run Code Online (Sandbox Code Playgroud)

在访问者离开页面(window.onunload)之后,我通过XMLHttpRequest将时间发送到PHP文件,该文件将它存储在我的数据库中:

function sendCount() {
    clearTimeout(y);    
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }  
xmlhttp.open("GET","count.php?q="+b,true);
xmlhttp.send();
}
Run Code Online (Sandbox Code Playgroud)

问题是它并不总是有效.我会说它的效果就像我尝试过的10次中的3次.是不是没有足够的时间让PHP和SQL完全执行?

javascript time counter onunload

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

JavaScript和DOM绑定

我正在阅读它所说的DOM标准:

DOMImplementationRegistry是一个全局变量,它具有以下功能:getDOMImplementation(features)...等

我想了解但无法找到有关的信息:

  • 谁提供了这个DOMImplementationRegistry 对象的实现?
  • JavaScript如何获得所需的DOM实现?它是用JavaScript实现的(用于JavaScript)?
  • 我该如何访问这个变量(DOMImplementationRegistry)?

你可以向我解释一下还是提供一个有用的链接?

javascript dom

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