小编zer*_*ro0的帖子

DOM级别有什么不同,它们如何相互关联?

我经常听说"DOM级别1","DOM级别2","DOM级别3"和"DOM级别4",并意识到我不知道它们之间的区别或它们之间的相互关系.

我知道非常基础 - DOM是文档对象模型,并且提供对脚本语言的访问(特别是,但据我所知,不限于各种版本的ECMAScript,例如ECMAScript 5.1)来访问HTML文档的元素.(我读过的一些网站 - 例如quirksmode上dom介绍 - 说它适用于任何XML文档,但HTML是一个足够的子集.)

w3c的DOM技术报告上的日期似乎暗示每个后续的DOM级别都会取代之前的DOM级别.

可悲的是,我发现提供澄清的最佳参考是维基百科,似乎也是这样 - 标准化部分说后续级别"增加"了额外的功能,而没有提到删除任何东西.

现在,对于我的问题,这可能是迅速的火,但希望表达我的无知的一般状态:

  • 一个DOM级别与另一个DOM级别的关系是什么?
  • 较低级别的DOM是否完成了更高级别DOM的子集?随着DOM级别的进步,是否已删除任何功能?当我看到这样的语句The level 1 DOM will work fine on an HTML documentIn the Level 1 DOM, each object, whatever it may be exactly, is a Node(无论是从怪异模式介绍),这是否意味着这样的语句是级别2,3和4是真的吗?(这些都是同一个问题,只是问了不同的方法)
  • 引用DOM级别真的只不过是用户代理必须如何使特定功能工作的速记方式吗?

显然,我可以研究w3c的DOM技术报告中的每个规范,但希望从那些有第一手经验的人那里得到答案.只是通过浏览DOM级别3的规范更改部分,我看到大多数从2到3的更改都是添加,尽管Node接口中的一些关键实现已经更改.这些改变是否破坏了什么?

我想做的不仅仅是在下次有人告诉我,"哦,这是DOM级别2,所以没关系"时,点头表示赞同,所以欢迎任何我错过的参考资料或者我从研究中没有收到的第一手资料.

html javascript xml xhtml dom

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

Python函数指针的类型

对于Python 3,它对我来说是一个很好的做法,提示函数参数和返回类型的数据类型.例如:

def icecream_factory(taste: str='Banana') -> Ice:
    ice = Ice(taste)
    ice.add_cream()
    return ice
Run Code Online (Sandbox Code Playgroud)

这适用于所有简单数据类型和类.但现在我需要使用"函数指针":

class NotificationRegister:

    def __init__(self):
        self.__function_list = list()
        """:type: list[?????]"""

    def register(self, function_pointer: ?????) -> None:
        self.__function_list.append(function_pointer)

def callback():
    pass

notification_register = NotificationRegister()
notification_register.register(callback)
Run Code Online (Sandbox Code Playgroud)

必须注意什么才能?????明确这里需要一个函数指针?我试过function,因为type(callback)<class 'function'>,但关键字function没有定义.

python annotations function-pointers function python-3.x

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

MariaDB 在插入 UUID 触发器之前

我在 Windows 64 平台上使用MariaDB 5.5.29 。我创建了这个表:

\n\n
CREATE TABLE DM_COUNTRIES\n(\n    COUNTRY_UUID BINARY(16) NOT NULL,\n    C_NAME VARCHAR(255) NOT NULL UNIQUE,\n    C_LOCALNAME VARCHAR(255) DEFAULT NULL,\n    C_COUNTRYCODE VARCHAR(255) DEFAULT NULL,\n    PRIMARY KEY (COUNTRY_UUID)\n)\nENGINE=InnoDB;\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在我想确保,如果未提供 UUID(将成为主键),则会自动插入。因此,我创建了这个触发器:

\n\n
DELIMITER |\nCREATE TRIGGER TRIG_BI_DM_COUNTRIES\nBEFORE INSERT ON DM_COUNTRIES\nFOR EACH ROW\nBEGIN\n    IF NEW.COUNTRY_UUID IS NULL THEN\n        SET NEW.COUNTRY_UUID = UUID();\n    END IF;\nEND|\nDELIMITER ;\n
Run Code Online (Sandbox Code Playgroud)\n\n

为了确保一切都已提交(即使架构更改不需要它):

\n\n
COMMIT;\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在,当我尝试插入新行时:

\n\n
INSERT INTO DM_COUNTRIES\n    (C_NAME, C_LOCALNAME, C_COUNTRYCODE)\nVALUES\n    ('Gro\xc3\x9fbritannien', 'Great Britain', 'UK');\n
Run Code Online (Sandbox Code Playgroud)\n\n

我希望触发器将新的 UUID 放置到位,然后成功插入到表中。但发生的事情是这样的:

\n\n
错误代码:1364。字段“COUNTRY_UUID”没有默认值 …

sql uuid triggers mariadb

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

如何从Centos中删除损坏的菜单链接

http://imtp.me/50k001tmy

请检查此链接,我正在尝试从Centos中删除损坏的链接.我也删除了netbeans7.3.desktop文件,但我认为我遗漏了一些东西.

有人可以帮忙吗?

gnome centos

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