我想要一个库类,可以在同一请求中保持状态。我的用例是我想将“消息”传递给类,然后随时从视图中调用它们。可以从应用程序的任何部分添加消息。
我最初是通过静态方法完成的,效果很好。但是,作为 lib 的一部分,我还需要调用__constructand __destruct(),这不能在静态类上完成。
这是我正在尝试做的一个非常简单的例子:
class Messages
{
private static $messages = array();
public function __construct()
{
// do something
}
public function __destruct()
{
// do something else
}
public static function add($message)
{
self::$messages[] = $message;
}
public static function get()
{
return self::$messages;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我可以通过执行在我的代码中的任何位置添加消息
Messages::add('a new message');
Run Code Online (Sandbox Code Playgroud)
如果可能(可测试性),我想避免使用静态。我看过 DI,但它似乎不合适,除非我遗漏了一些东西。
我可以创建一个类(非静态),但是我如何确保所有消息都写入同一个对象 - 以便我以后可以检索它们?
解决这个问题的最佳方法是什么?
我在http://discuss.joelonsoftware.com/default.asp?interview.11.780597.8上找到了使用Morris InOrder遍历的解决方案,我们可以使用它来查找O(n)时间中位数.
但是有可能使用O(logn)时间来实现相同的目标吗?这里也有同样的问题 - http://www.careercup.com/question?id=192816
尝试了一些与垂直对齐有关的解决方案后,我似乎无法解决这个问题.不确定是否有人可以帮助我.我想要的是将替换文本放在空图像的中间.
这是html代码:
<div class="viewport">
<a href="#">
<img src="http://yahoo.com/" alt="no image" />
</a>
<div>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是css代码:
.viewport {
background: #bbb;
width: 350px;
height: 300px;
padding: 5px;
}
.viewport img …Run Code Online (Sandbox Code Playgroud) 以下代码警告"未定义",并且不会像我预期的那样在响应数据中附加html.有谁知道为什么?
JavaScript的:
$(function() {
$('.document').on('click', '.ajax', function(e) {
e.preventDefault();
// ajax request
$.ajax({
async: true,
cache: false,
type: 'post',
url: '/echo/html/',
data: {
html: '<p>This is echoed the response in HTML format</p>',
delay: 1
},
dataType: 'html',
beforeSend: function() {
console.log('Fired prior to the request');
},
success: function(data) {
console.log('Fired when the request is successfull');
$('.document').append(data);
},
complete: function() {
console.log('Fired when the request is complete');
}
});
});
});?
Run Code Online (Sandbox Code Playgroud)
HTML:
<div class="document">
<a class="ajax" href="#">Fire an AJAX request</a>
</div>? …Run Code Online (Sandbox Code Playgroud) 我创造了一个小提琴来演示我的问题:http://jsfiddle.net/motocomdigital/QyhpX/5/
概述
我正在使用jQuery .animate功能创建一个标签式网站.在我的直播网站上哪一个在第一次轮换时看起来很奇怪,但我似乎无法在小提琴中复制它.
左侧选项卡将div#wrapper右侧定位设置为-170px并返回0 - 然后我添加了.removeAttr('style');删除样式属性,因此它不会干扰右侧选项卡.
右侧选项卡将div#wrapper左侧定位设置为-170px并返回0 - 然后我添加了.removeAttr('style');删除样式属性,因此它不会干扰左侧选项卡.
问题
在.removeAttr('style');不去除后的内嵌样式属性.animate完成,这将导致如果有合适的标签已经打开了我的左选项卡是失去作用.
请参阅jsfiddle http://jsfiddle.net/motocomdigital/QyhpX/5/
还有人注意到第一个选项卡上的任何故障都打开了交替吗?左还是右?它似乎挂在第一次打开,然后突然它打开,但顺利关闭,然后顺利重新打开.它只是第一次点击开放.
TAB CODE SCRIPT
var $tabLeft = $(".tab-left-button span"),
$tabRight = $(".tab-right-button span"),
$siteSlide = $("#wrapper");
$tabLeft.on('click', function () {
if ($tabLeft.html() == 'X' ) {
$siteSlide.stop().animate({ right: "0" }, 300);
$tabLeft.html('Tab Left');
return false;
$siteSlide.removeAttr('style');
} else {
$siteSlide.stop().animate({ right: "-170px" }, 300);
$tabLeft.html('X');
$('body,html').animate({
scrollTop: 0
}, …Run Code Online (Sandbox Code Playgroud) 我阅读了几篇关于HTML5中的Web Workers的文章,但我无法清楚地理解以下内容:
感谢有人能帮助我解释上述问题.
所以我正在构建一组JavaScript(jQuery)小部件,我想确定这些小部件的所有元素都在使用box-sizing: border-box(是的,我知道这意味着我只能支持8或更高版本的IE版本我很好).
现在我听说做一个[selector] > *很慢但是有多慢?
我的意思是只有一个小部件,我有这个选择器,以确保所有元素都有正确的框大小:
.jg-grid-wrap,
.jg-grid-content-outer-wrap,
.jg-grid-colum-actions a,
.jg-grid-content-wrap,
.jg-grid-wrap .hide,
.jg-grid-wrap ul,
.jg-grid-wrap ul li,
.jg-grid-header-wrap,
.jg-grid-header-wrap li,
.jg-grid-header-wrap .sort-indicator,
.jg-grid-row,
.jg-grid-row li,
.jg-grid-footer-wrap,
.jg-grid-footer-wrap .column-selection
.jg-grid-wrap .controls,
.jg-grid-wrap .controls .first-page-link,
.jg-grid-wrap .controls .previous-page-link,
.jg-grid-wrap .controls .next-page-link,
.jg-grid-wrap .controls .last-page-link,
.jg-grid-wrap .controls .column-selection-link,
.jg-grid-wrap .controls .set-page-link,
.jg-grid-wrap .controls .total-page-count,
.jg-grid-wrap .controls .record-counts,
.jg-grid-wrap .controls .record-display-text
{
box-sizing: border-box;
}
Run Code Online (Sandbox Code Playgroud)
但它会更小,更容易写:
.jg-grid-wrap *
{
box-sizing: border-box;
}
Run Code Online (Sandbox Code Playgroud)
另外,如果我添加一个元素,我现在必须记住将它添加到巨大的选择器中,与星号一起,我不必担心它.
我真的值得花时间单独列出每一个可能的元素,因为[selector] > *它真的很慢吗?
UPDATE …
我有一个小问题
我想点击我的表情符号并将文本插入textarea.当我想稍后添加笑脸时,应将笑脸添加到光标位置,而不是添加到textarea的末尾.
这是我的HTML代码:
<textarea id="description" name="description"></textarea>
<div id="emoticons">
<a href="#" title=":)"><img alt=":)" border="0" src="/images/emoticon-happy.png" /></a>
<a href="#" title=":("><img alt=":(" border="0" src="/images/emoticon-unhappy.png" /></a>
<a href="#" title=":o"><img alt=":o" border="0" src="/images/emoticon-surprised.png" /></a>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我的JS代码:
$('#emoticons a').click(function(){
var smiley = $(this).attr('title');
$('#description').val($('#description').val()+" "+smiley+" ");
});
Run Code Online (Sandbox Code Playgroud)
在这里你可以看到结果(NO WRAP - BODY) http://jsfiddle.net/JVDES/8/
我使用extern JS文件作为我的javascript代码......
你知道为什么代码没有运行在NO WRAP - HEAD模式下吗?
http://jsfiddle.net/JVDES/9/
谢谢你的帮助
关心bernte
我有 SQL 脚本:
CREATE TABLE TESTTABLE1(
ID_TESTTABLE1 NUMBER (18) NOT NULL,
TESTTABLE_VALUE1 NUMBER (18),
TESTTABLE_KEY1 NUMBER (18))
Run Code Online (Sandbox Code Playgroud)
并使用 Fluentmigrator:
[Migration(201302021800)]
public class Migration_201302021800 : AutoReversingMigration
{
public override void Up()
{
var url = @"Update_1.0.0.5.sql";
Execute.Script(url);
}
}
Run Code Online (Sandbox Code Playgroud)
它执行成功,如果我添加一些 SQL:
CREATE TABLE TESTTABLE1
(
ID_TESTTABLE1 NUMBER (18) NOT NULL,
TESTTABLE_VALUE1 NUMBER (18),
TESTTABLE_KEY1 NUMBER (18)
);
CREATE TABLE TESTTABLE
(
ID_TESTTABLE NUMBER (18) NOT NULL,
TESTTABLE_VALUE NUMBER (18),
TESTTABLE_KEY NUMBER (18)
);
Run Code Online (Sandbox Code Playgroud)
在 Fluentmigrator 中执行失败,带有Oracle exeption {"ORA-00911: invalid character"} …
我有一个部分视图,其中包含用于上载文件的文件输入.此视图上的用户将从其工作站中选择一个文件,然后单击上载按钮.上载单击会将表单提交给操作方法,并解析文件并返回相同的视图以自动填充视图上的几个字段.
一切都是完美的.我在现有视图中添加了一个新要求,如下所示:
需求
用户选择一个文件并单击上传按钮.单击上载按钮后,会向用户显示一个JavaScript确认对话框,其中包含两个按钮选项,然后将表单提交给控制器操作方法.这些按钮是"Buffer Run Parsing"和"Normal Parsing".单击任何这些按钮将发布到控制器操作方法.
在post上的控制器动作方法中,我的目标是捕获他们按下的按钮,并根据按下的按钮我相应地选择文件解析逻辑.
问题
我创建了一个JavaScript函数,它显示了两个按钮,但对话框自动消失,表单发布到控制器.我希望它不发布,直到我点击任一确认按钮.
这是我在做的事情:
主要观点:
@using (Html.BeginForm("Create", "RunLogEntry", FormMethod.Post, new { id = "form", enctype = "multipart/form-data"}))
{
<div id="main">
@Html.Partial("_RunLogEntryPartialView", Model)
</div>
}
Run Code Online (Sandbox Code Playgroud)
局部视图:
<button name="submit" class="art-button" type="submit" value="Upload" onclick="initUploadDailog();return false;"
style="width: 100px">
Upload</button>
<div id="uploadConfirmation" style="font-size: 10px; font-weight: normal; overflow: scroll;
width: 800px; height: 450px; display: none;">
</div>
Run Code Online (Sandbox Code Playgroud)
JS功能:
function initUploadDailog(e) {
currentForm = $(this).closest('form');
UploadDialog = $("#uploadConfirmation").dialog({
modal: true,
width: 400,
autoOpen: true,
title: 'Please select parsing type for Test …Run Code Online (Sandbox Code Playgroud) jquery ×4
html ×3
css ×2
.net ×1
ajax ×1
algorithm ×1
asp.net-mvc ×1
c# ×1
html5 ×1
javascript ×1
onclick ×1
oracle11g ×1
performance ×1
php ×1
textarea ×1
traversal ×1
web-worker ×1