小编Fuh*_*tor的帖子

在我停止输入/写入后如何在输入文本中触发事件?

我想在输入文本框中停止输入(而不是在输入时)字符后触发事件.

我尝试过:

$('input#username').keypress(function() {
    var _this = $(this); // copy of this object for further usage

    setTimeout(function() {
        $.post('/ajax/fetch', {
            type: 'username',
            value: _this.val()
        }, function(data) {
            if(!data.success) {
                // continue working
            } else {
                // throw an error
            }
        }, 'json');
    }, 3000);
});
Run Code Online (Sandbox Code Playgroud)

但是这个例子会为每个类型字符生成一个超时,如果输入20个字符,我会得到大约20个AJAX请求.

在这个小提琴上,我用简单的警报而不是AJAX来演示同样的问题.

有没有解决方案,或者我只是使用一种不好的方法?

jquery timeout keypress typeahead debouncing

74
推荐指数
6
解决办法
11万
查看次数

在另一个git仓库中维护一个Git仓库

我有一个包含AngularJS Web应用程序的git repo.

它有一个名为的子文件夹build,它由gulp任务创建.我正在部署到Azure,因此它直接连接到我的bitbucket目录.

我想将build文件夹作为一个单独的git仓库,从中部署Azure应用程序.我如何在git中实现这一点?

git github

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

工厂设计模式

我正在尝试实施工厂设计模式,并且到目前为止已经做到了这一点.

import abc

class Button(object):
    __metaclass__ = abc.ABCMeta

    html = ""
    def get_html(self, html):
        return self.html

class ButtonFactory():
    def create_button(self, type):
        baseclass = Button()
        targetclass = type.baseclass.capitalize()
        return targetclass

button_obj = ButtonFactory()
button = ['image', 'input', 'flash']
for b in button:
    print button_obj.create_button(b).get_html()
Run Code Online (Sandbox Code Playgroud)

输出应该是所有按钮类型的HTML.

我得到这样的错误

AttributeError: 'str' object has no attribute 'baseclass'
Run Code Online (Sandbox Code Playgroud)

我正在尝试实现一个具有不同变体的类,例如ImageButton,InputButton和FlashButton.根据地点的不同,可能需要为按钮创建不同的html

python design-patterns

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

从后台线程完成android活动是否安全?

在Android中,Activity.finish()从后台线程调用是否安全,或者只能从主线程调用?该文档没有提及有关此方法的线程安全性的任何信息.

android thread-safety android-activity

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

如何在基类中封装属性?

我的方案是关于开发数学问题.作为一个IProblem接口,我认为它应该包含的两个主要属性是QuestionTextResponse.QuestionTextalways总是一个字符串,但Response有时可以是一个复杂的对象(一个自定义的Fractionstruc)或另一个数据类型,如string,decimal,int等.

    public interface IProblem
    {
        string QuestionText { get; set; }
        object Response { get; }

        bool IsComplete();
        bool IsCorrect();
    }
Run Code Online (Sandbox Code Playgroud)

如你所见,Response是对象.我猜这个数据类型,因为所有问题本质上都有一个响应.因为它是一个对象,我只定义了未来的错误(投射问题).

我的想法是稍后,在具体类中访问此属性(Response),而无需强制转换.看看这个?

    public abstract class Problem : IProblem
    {
        public string QuestionText { get; set;}
        public object Response { get; protected set; } 
        public virtual bool IsComplete()
        {
            return true;
        }
        public abstract bool IsCorrect();
    }

    public class BinaryProblem : Problem
    {
        public …
Run Code Online (Sandbox Code Playgroud)

c# oop uml object-oriented-analysis

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

使用guice进行客户端sdk /库设计模式的依赖注入

我正在为Web API构建客户端SDK并尝试通过guice应用依赖注入.第三方将使用此Java客户端作为访问API的方式.

我希望能够注入我的外部依赖项(使用的HTTP客户端等),并为开发人员提供一种方法,如果他们想要或者我自己想要更改实现,则可以注入不同版本的这些依赖项(依赖项的一个很好的例子)注射对吗?).

但是为了连接依赖项,我必须让我的库的用户创建一个注入器等,如下所示:

Injector injector = Guice.createInjector(new MyAPIClientModule(url, username, password));
        this.service = injector.getInstance(MyAPIService.class);
Run Code Online (Sandbox Code Playgroud)

我不想把它推到我的库的用户,但我仍然希望让用户能够选择不同的实现或底层HTTP库等.

我在某种程度上错过了guice或DI的观点吗?这是使用guice时的标准做法吗?

或者我应该将它包装在另一个执行注入的类中,并向第三方用户提供一个示例Java对象?

java design-patterns dependency-injection guice

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

通过工厂设计模式从客户端隐藏新的优势是什么?

我最近看过工厂设计模式,因为他提到了正常方法中的一个问题

*需要在客户端类中使用new关键字.

因此,通过使用工厂,我们已经实现了这一点(客户端不使用新的).但是从客户端隐藏新东西有什么好处?

一个问题是当客户端使用新的关键字时,他负责删除该内存.如果我们也使用工厂,我们仍然需要这样做,当客户端在最后创建一个对象时,客户端必须删除它(工厂不会删除它们).

我理解,其他优点,如重用现有代码,无需更改客户端代码.但是我对从客户端隐藏新(甚至是类)所取得的成果感到困惑.

提前致谢.

c++ design-patterns factory-pattern

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

如何在 Pharo 中添加新方法?

在 Nautilus 系统浏览器 (Pharo 6) 中,有一个右键单击命令Add package...以及Add class...甚至Add protocol...,但我在任何地方都找不到方法Add method...

那个命令在哪里?

pharo

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

复制以编程方式创建的定期事件?

使用Google Apps脚本,我创建了一个具有复杂定期事件的日历.但是,我无法将该事件复制到另一个日历作为重复发生的事件.注意:无法通过Web界面生成或编辑重复规则.

举一个真实的例子,假设用户想要从这个公开共享的Google日历中复制定期事件.该活动是我大学周四课程的课程安排的模板活动.

以下是阻止用户将定期事件复制到用户有权访问的另一个日历的两个困难:

  • 单击该事件的实例并说"复制到我的日历"仅复制该单个事件,即使该事件被定义为重复.这不是一个好的解决方案,因为用户必须执行此操作超过10次才能获得一个学期的所有事件.
  • 单击事件的实例,然后单击"更多详细信息",然后尝试"更多操作"菜单下的"复制到xxxx"(其中xxxx是用户拥有的日历)似乎正常工作.但是,单击"保存"时会出现错误:"发生错误.请稍后再试."

编辑这里是一个屏幕截图,显示事件在Google日历中的样子(点击事件,"更多详情").

屏幕截图所创建事件的详细信息

请注意,这个重复发生的事件是从学期开始到结束的每个星期一,有几个例外.没有假期(例如,星期一2013-02-25),但也包括星期三2013-02-27,在哪一天,课程将被视为星期一(根据大学课程安排).

我再说一遍:重复活动在Google日历中看起来很不错,但不能将它们全部复制到另一个日历中.

创建日历的GAS函数(不是所有代码都在这里):

function createCalendar(calendarName, courseCode, weekday, times, room, isLab) {

  Logger.log("Last day: " + LAST_TRIMESTER_DATE);
  // hack the last day so that it's not midnight but rather just before the next day, i.e., 23:59:59
  var adjustedLastDay = LAST_TRIMESTER_DATE;
  adjustedLastDay.setTime(adjustedLastDay.getTime() + (23*60*60*1000) + (59*60*1000) + (59*1000));
  Logger.log("Adjusted last day: " + adjustedLastDay);

  var eventRecurrence = CalendarApp.newRecurrence();
  eventRecurrence.addDailyRule().until(adjustedLastDay).interval(1).onlyOnWeekday(weekday);

  // get the day of the …

google-calendar-api google-apps-script google-calendar-recurring-events

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

在 Google 文档中以编程方式向前或向后(轻松)移动光标

每当我使用以下代码在文档中插入图像时,

  var cursor = DocumentApp.getActiveDocument().getCursor();
  var image = cursor.insertInlineImage(resp.getBlob());
Run Code Online (Sandbox Code Playgroud)

光标位于图像之前。似乎将光标放在插入的内容之后更有意义,就像它已被粘贴一样。

我发现Document.newPosition可以实现这一点,但使用起来似乎很复杂。

这是我收集的:

  • 获取当前光标
  • 获取它所包含的元素
  • 解析其类型(例如,段落),并根据子项的数量使用 newPosition 处理逻辑,以防光标位于段落末尾等。

我开始尝试这样做,但认为我做错了什么,因为它太复杂了。是否有一个简单的功能可以将光标向前或向后移动一定数量的元素,例如使用箭头键?


编辑:我找到了一个简单的图像插入解决方案。光标后面总是有一个图像,所以这是有效的:

  var position = doc.newPosition(cursor.getElement(), cursor.getOffset()+1);
  doc.setCursor(position);
Run Code Online (Sandbox Code Playgroud)

然而,如果任意向前移动光标,就必须考虑cursor.getOffset()+1超出的情况ContainerElement

google-docs google-apps-script

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