小编kev*_*nji的帖子

移位与在PHP中相乘

我有以下代码:

<?php
$start = 1;

$timestart = microtime(1);
for ($i = 0; $i < 1000000; $i++) {
    $result1 = $start * 4;
}
echo "\n";
echo microtime(1) - $timestart;
echo "\n";

$timestart = microtime(1);
for ($i = 0; $i < 1000000; $i++) {
    $result2 = $start << 2;
}
echo "\n";
echo microtime(1) - $timestart;
echo "\n";
Run Code Online (Sandbox Code Playgroud)

这输出:

0.14027094841003

0.12061500549316
Run Code Online (Sandbox Code Playgroud)

我在互联网上找到了一个谷歌面试问题(我想申请开发人员,但我意识到我不能),其中一个问题询问最快的方法是乘以一个数字.我的第一个想法是使用*标志,所以我测试了它.

我的问题是,为什么比乘法更快地移位?

php bit-shift multiplying

21
推荐指数
2
解决办法
1185
查看次数

防止绝对定位的元素与文本重叠

我有一个独特的情况.

基本上,我有一个绝对定位的文本块,由于设计限制,必须绝对定位.

我还有其余的文本,通常是定位的.但是,我需要阻止我的普通文本与原始文本重叠.

这是否可以简单地使用HTML和内联CSS?我无权访问JavaScript或外部/ head相关的CSS; 只有内联样式可用.我用这个jsFiddle创建了CSS的简化版本.

html css css-position

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

什么时候OCaml需要反驳案件?

在官方OCaml文档的"语言扩展"章节GADT部分中,_ -> .引入了表格的驳斥案例.但是,我认为模式匹配已经是详尽无遗的,所以我不确定何时需要反驳案例.

文档中给出的示例如下:

type _ t =
  | Int : int t
  | Bool : bool t

let deep : (char t * int) option -> char = function
  | None -> 'c'
  | _ -> .
Run Code Online (Sandbox Code Playgroud)

但即使是文件也表明这种驳斥案件是多余的.有没有一个例子,代码需要反驳案例进行类型检查?

ocaml pattern-matching gadt

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

按名称获取表单元素?

我想在一个漂亮的Prototype或jQuery风格的快捷方式中轻松地将所有带有相同名称的单选按钮设置为样式.

$('billship').select('name:shipType') 或类似的东西.

是否存在表单字段名称的快捷方式?

javascript forms jquery element

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

chrome.runtime.sendMessage无法按预期工作

我正在编写一个带有内容脚本和后台脚本的Chrome插件,我正在尝试让两者进行通信.

在我的内容脚本中,我正在做

chrome.runtime.sendMessage({greeting: "hello"}, function(response) {
      console.log(response.farewell);
});
Run Code Online (Sandbox Code Playgroud)

在我的后台脚本中,我正在做

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) {
        console.log(sender.tab ?
          "from a content script:" + sender.tab.url :
          "from the extension");
        if (request.greeting == "hello")
            sendResponse({farewell: "goodbye"});
    }
);
Run Code Online (Sandbox Code Playgroud)

我的清单看起来像这样:

{
    "manifest_version": 2,
    "name": "Tesing Phase",
    "version": "1.0",
    "background": {
        "persistent": false,
        "scripts": ["bgscript.js"]
    },
    "content_scripts": [{
        "js": ["contentscript.js"],
        "all_frames": true,
        "run_at" : "document_start",
        "matches": ["*://*/*"]
    }],
    "web_accessible_resources": ["script.js"]
}
Run Code Online (Sandbox Code Playgroud)

当我运行我的插件时,我收到以下错误:

Uncaught TypeError: Object #<Object> has no method 'sendMessage' 
Run Code Online (Sandbox Code Playgroud)

我尝试记录chrome.runtime,没有方法sendMessage.我在Ubuntu上使用Chromium 25.0版.我也试过使用 …

chromium google-chrome-extension

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

Scala/Lift - 试图理解Lift同时声称使用有效的html和倾向于提升:标记和标记重写在渲染中

所有七件事(http://seventhings.liftweb.net/)当然都不错,但我特别热衷于模板(http://seventhings.liftweb.net/templates)声称"Lift支持设计师友好模板".

作为我学习Lift的做法的一个步骤,我正在尝试创建一个简单的对象创建表单:获取一些参数,将它们用作构造函数参数,然后将对象存放起来.经过一些研究和实验,我有两个问题:

  1. 在片段中显着重写/修饰模板标记似乎存在相当大的倾向.
  2. 表单似乎不使用有效或可识别的html元素.

我的基础是:

表单示例/文档似乎都是关于特殊提升:标签.Exploring Lift 表示表单应如下所示:(http://exploring.liftweb.net/master/index-6.html)

<lift:Ledger.add form="POST">
  <entry:description />
  <entry:amount /><br />
  <entry:submit />
</lift:Ledger.add>
Run Code Online (Sandbox Code Playgroud)

我不确定它甚至是有效的html5,虽然它可能是有效的xhtml,但它并不觉得这符合我们的设计师朋友让你的模板看起来像真正的HTML的精神.我在其他地方读了(再也找不到了)我们确实可以选择使用实际的输入标签,但是我们不会得到Lift的花哨形式的某些部分,或者某些,这段话不是很清楚关于我究竟错过了什么,这些例子似乎对我写一个简单的html表单并制作简单的html帖子感兴趣.

demo.liftweb.net示例(1)的代码表明您的模板应如下所示(2)

<lift:surround with="default" at="content">
  <div class="lift:PersonScreen"></div>
</lift:surround>
Run Code Online (Sandbox Code Playgroud)

PersonScreen片段的代码也不完全是有启发性的(3).还有一些模板的其他示例,例如,在特定位置只有一个ul标签,只能在片段中生成一系列具有嵌套元素的复杂li.当然,你可以在Scala中使用xml并且它可以读取,但它仍然在各处分散你的标记.这似乎违反了"设计师友好模板"的精神.

我想要了解什么.

很长一段时间我在webapp开发中严格遵循两条规则:

  1. "代码"(控制器,商业模式)中没有标记.
  2. 模板中没有任何业务逻辑.

Idiomatic Lift似乎完全放弃了第一条规则,完全错过了第二条规则的价值.这些规则对我很有帮助,我还没准备好跟随那些似乎违反这些规则的例子而不理解为什么它不会造成混乱.我想了解为什么在Lift中可以在Snippets中生成如此多的显示代码.我也想了解为什么模板中的标记很少反映输出.

我(我想)想要的是什么:

我希望我的所有标记都有很少的(如果有的话)异常存在于我的模板中.我希望我的代码段能够进行最小的模板修改,通常只替换"leaf"标签上的元素文本,并可能调整属性值.我想我已经为一个相当复杂的显示示例做了这个,我怀疑我可以使用相同的技术生成一个vanilla html表单然后自己处理params.如果我希望我的模板看起来像最终结果表单那么我需要做什么?

回应和任何其他想法,尤其是了解有关这些东西的Lift心态,将非常感激.

谢谢!

  1. http://demo.liftweb.net/simple_screen?F674431078927QJVVYD=_
  2. https://github.com/lift/examples/blob/master/combo/example/src/main/webapp/simple_screen.html
  3. https://github.com/lift/examples/blob/master/combo/example/src/main/scala/net/liftweb/example/snippet/Wizard.scala#L94

编辑

回应@ OXMO456.(感谢您的回复.)

我有,他们似乎只是证实了我的担忧:例如我们开始:

提升模板不包含可执行代码.它们是纯粹的,原始的,有效的HTML.

太棒了.然后呢:

后两种调用代码片段的机制不会产生有效的Html5模板.

然而每个人似乎都使用这两种机制中的第一种.还说,它说:

第三,设计人员不必担心学习编程任何东西以便设计HTML页面,因为程序执行是从HTML中抽象而不是嵌入HTML中.

但非常一致的是,我在OP中引用的示例片段完全以编程方式生成标记.这似乎与设计友好模板的目标(a)背道而驰,因此设计人员不必担心Freemarker标记和(b)将显示逻辑与业务逻辑分离.

第二个链接很有帮助,也很有启发性,但很明显这不是The Lift Way.然而,The Lift Way似乎也将标记生成的整个负载拖入片段,这是(我认为)标记和业务逻辑的巨大复合.是电梯之路吗?

xhtml html5 templates scala lift

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

使用CSS替换ul项目符号点样式

我想替换ul列表的list-style-type属性,以便外部是一个光盘,然后一个内部ul列表是一个圆,而另一个内部是一个光盘,依此类推.

基本上,我想要的是这样的:

<ul><!-- use disc -->
  <li>Lorem ipsum</li>
  <li>
    <ul><!-- use circle -->
      <li>Lorem ipsum</li>
      <li>
        <ul><!-- use disc -->
          <li>Lorem ipsum</li>
        </ul>
      </li>
      <li>Lorem ipsum</li>
    </ul>
  </li>
  <li>Lorem ipsum</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我如何使用CSS实现这一目标?

css html-lists

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

Caliburn.Micro无法匹配来自不同程序集的View和ViewModel

我刚开始使用Caliburn.Micro.

我正在尝试引导我的简单示例解决方案,将ShellView(usercontrol)放在Test.App程序集中,将ShellViewModel放在Test.ViewModel程序集中.

我得到的是一个窗口,其中包含以下文本:"无法找到Caliburn.Test.ViewModel.ShellViewModel的视图".

但是,如果我将ViewModel移动到.App程序集,它可以很好地工作.

这是Caliburn.Micro.Test程序集中的Bootstraper(可执行文件):

namespace Caliburn.Micro.Test
{
    public class AppBootstrapper : BootstrapperBase
    {
        SimpleContainer container;

        public AppBootstrapper()
        {
            this.Start();
        }

        protected override void Configure()
        {
            container = new SimpleContainer();

            this.container.Singleton<IWindowManager, WindowManager>();
            this.container.Singleton<IEventAggregator, EventAggregator>();
            this.container.PerRequest<IShell, ShellViewModel>();
        }

        protected override object GetInstance(Type service, string key)
        {
            var instance = this.container.GetInstance(service, key);
            if (instance != null)
                return instance;

            throw new InvalidOperationException("Could not locate any instances.");
        }

        protected override IEnumerable<object> GetAllInstances(Type service)
        {
            return this.container.GetAllInstances(service);
        }

        protected override void BuildUp(object instance)
        {
            this.container.BuildUp(instance); …
Run Code Online (Sandbox Code Playgroud)

.net c# mvvm caliburn.micro

10
推荐指数
2
解决办法
8933
查看次数

OCaml - 什么是不健全的类型?

最近我得到了代码

List.fold_left (fun acc x -> raise x ; acc) 3
Run Code Online (Sandbox Code Playgroud)

我完全没有这个具有类型功能值的部分应用程序exn list -> int,并且它产生警告的事实并不令人惊讶.但是,我不确定警告的一半是什么意思:

Warning 21: this statement never returns (or has an unsound type.)
Run Code Online (Sandbox Code Playgroud)

我实际上找不到任何对此警告的引用,因为它不是非返回语句的结果.即使是ocamlc的手册页也只提到了这个警告的非返回语句,而warnings.ml仅仅提到了它Nonreturning_statement.

我熟悉声音的概念,因为它与类型系统有关,但类型本身本身就不健全的想法对我来说似乎很奇怪.

所以我的问题是:

什么是不健全的类型?

当OCaml只发出警告而不是彻底失败时,会出现不健全类型的情况是什么?

有人发布了这个问题,在我写答案时,它被删除了.我相信这个问题非常有趣,值得重新发布.请考虑你可能有人愿意帮助你:-(

ocaml

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

CSS - 两列表格

我正在尝试减少与前端代码中的演示相关的html标记量.在我目前正在处理的表单中,我希望有2列表单字段.一种绝对可以做到我想要的方法是:

<html>
<head>
<style>
body {width:400px;}
.col {width:200px; height: 100px; float:left; display:block;}
label, input {display:block;}
</style>
</head>
<body>

<div class="col">
        <label>Field1:</label>
        <input>
</div>
<div class="col">
        <label>Field2:</label>
        <input>
</div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我希望在浏览器中渲染时获得相同的结果,而没有标记中的div标记.所以我做了这样的事情:

<html>
<head>
<style>
body {width:400px;}
label,input {width:200px; height: 30px; float:left; display:block;}
</style>
</head>
<body>
        <label>Field1:</label>
        <label>Field2:</label>
        <input>
        <input>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这很接近,但我希望<label>标记标记出现在<input>代码中的每个标记标记之前,如下所示:

<label>field1</label>
<input>
<label>field2</label>
<input>
Run Code Online (Sandbox Code Playgroud)

但问题是我无法想象可维护的css代码会使标签出现在每个输入字段的顶部.是否有一种很好的方法可以使标记和渲染结果以我想要的方式显示?

html css

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