小编Sti*_*itt的帖子

如何取消绑定调用event.preventDefault()的侦听器(使用jQuery)?

jquery切换默认调用preventDefault(),因此默认值不起作用.你不能点击一个复选框,你不能点击链接等

是否可以恢复默认处理程序?

javascript jquery events event-bubbling preventdefault

128
推荐指数
6
解决办法
22万
查看次数

什么是默认的MySQL JOIN行为,INNER或OUTER?

所以我在最后一小时一直在浏览互联网,阅读并寻找这个简单问题的最终答案.

MySQL中的默认JOIN是什么?

SELECT * FROM t1 JOIN t2
Run Code Online (Sandbox Code Playgroud)

这是一样的吗?

SELECT * FROM t1, t2

OR

SELECT * FROM t1 INNER JOIN t2
Run Code Online (Sandbox Code Playgroud)

还有一个相关的问题,当你使用"WHERE"子句时,它是否与JOIN或INNER JOIN相同?

现在我认为独立的JOIN与使用逗号和WHERE子句相同.

mysql select join

86
推荐指数
1
解决办法
4万
查看次数

适用于本地数据缓存的智能分页算法

这是我长期以来一直在思考的一个问题,但我还没有编写任何代码,因为我首先要解决一些我正在努力解决的一般问题.这是主要的一个.

背景

单页Web应用程序将数据请求发送到某个远程API(由我们控制).然后,它将此数据存储在本地缓存中,并从那里提供页面.理想情况下,应用程序在离线时仍保持完全正常运行,包括创建新对象的功能.

约束

  • 假设包含+ - 50000个产品(50Mb)的产品的服务器端数据库
  • 假设没有db类型,我们通过REST/GraphQL接口与它进行交互
  • 假设单个产品记录<1kB
  • 假设结果集的最大有效负载为256kB
  • 假设客户端最多存储5MB
  • 假设每次搜索范围在0到5000个项目之间的搜索结果集

挑战

挑战在于定义一种无状态但(网络)有效的方式从结果集中获取页面,以便确定性地得到我们得到的结果.

在传统的分页中,当使用此url获取某些查询的下一个100个结果时:

https://example.com/products?category=shoes&firstResult=100&pageSize=100
Run Code Online (Sandbox Code Playgroud)

搜索结果可能如下所示:

{
  "totalResults": 2458,
  "firstResult": 100,
  "pageSize": 100,
  "results": [
    {"some": "item"},
    {"some": "other item"},
    // 98 more ...
  ]
}
Run Code Online (Sandbox Code Playgroud)

这样做的问题在于,根据此信息,无法准确获取特定页面上的对象.因为在我们请求下一页时,结果集可能已更改(由于DB中的更改),从而影响哪些项是结果集的一部分.即使是一个小小的变化也会产生很大的影响:从数据库中删除的一个项目(恰好位于结果集的第0页)将改变我们在请求所有后续页面时将获得的结果.

目标

我正在寻找一种机制来使结果集的定义独立于未来的数据库更改,所以如果有人在寻找鞋子并获得2458项的结果集,他实际上可以可靠地获取该结果集的所有页面,即使它受到后来DB更改的影响(我打算不删除项目,但为此设置了删除的标志)

到目前为止的想法

我见过一个解决方案,其中结果集包含一个"pages"属性,该属性是一个数组,其中包含该页面中项目的第一个和最后一个id.假设您的ID数量不断增加并且您实际上没有从DB中删除项目,则两个ID之间的项目数量是不变的.这意味着应用程序可以获取这两个ID之间的所有项目,并始终返回完全相同的项目.这个解决方案的问题是它只有在列表按ID顺序排序时才有效...我需要自定义排序选项.

我现在提出的唯一方法就是在结果集中发送所有ID的列表......这样就可以通过执行SELECT * FROM products WHERE id IN (3,4,6,9,...)... 来获取页面...但这感觉相当不优雅......

无论如何,我希望它不是太广泛或理论上的.我有一个基于Web的数据库,不知道如何使用它进行分页.我正在寻找帮助我学习方向的答案,而不是完整的解决方案.

algorithm pagination

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

在正则表达式中匹配单词之前或之后的字符,但不能同时匹配两者

假设我需要匹配一个单词,word其中单词之前或之后可能有句点,但不能两者都有。那么word.word、 和word.应该匹配,但.word.不应该匹配。我如何匹配这个并捕获该词之前和之后发生的事情?

这是一个简化的示例,我需要将其扩展到更复杂的情况。例如,现在符号.and'可能出现在单词之前或之后,但它们只能出现一次。例如,.word'wordword.'.word'只是一些有效匹配,但类似的内容.'word.'不应该匹配,甚至.'word'.

上面的示例是我的主要优先事项,但额外的好处是添加句号和撇号的顺序。因此'.word.'word应该都匹配。我认为对此有效的一种方法是\.?'?|'?\.?word,但我希望有某种方法,其中 OR 子句中的语句数量不依赖于符号的数量。

regex

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

复制单个文件然后使用maven-resources-plugin重命名 - 可能吗?

我使用maven-resources-plugin从不同的项目树复制单个WSDL文件,如下所示:

<execution>
    <id>copy-wsdl-and-rename-it</id>
    <phase>validate</phase>
    <goals>
        <goal>copy-resources</goal>
    </goals>
    <configuration>
        <outputDirectory>${basedir}/src/main/wsdl</outputDirectory>
        <resources>
            <resource>
                <directory>${basedir}/../myws/src/main/wsdl</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </configuration>
</execution>
Run Code Online (Sandbox Code Playgroud)

这很好用,但现在我需要将该wsdl目录下的(单个)文件重命名为其他内容(例如,从myws.wsdl源目录到my.wsdl目标目录).

有没有办法实现这一点,使用maven-resources-plugin,而不是诉诸另一个插件?

maven maven-resources-plugin

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

关于运行时不能与'RequiredExecutionEnvironment'"完美匹配"的警告是什么?

在使用Java/Eclipse/Maven/OSGi时,我经常遇到这个警告:

The JRE container on the classpath is not a perfect match to the 'JavaSE-1.6' execution environment

我在Java 7 JDK上.大多数项目需要(我认为是正确的)比这更低的版本.例如,它们将需要JavaSE-1.6或JavaSE-1.5.所以在MANIFEST.MF这些项目中,这些项目将有一个看起来像这样的条目(从我的捆绑项目中取样):

Bundle-RequiredExecutionEnvironment: JavaSE-1.6

这会给我上面提到的警告.现在,我知道两种可能的方法来"解决"这个警告:

  1. 使用Java 6运行时替换项目的当前运行时环境
  2. 将MANIFEST条目更改为 JavaSE-1.7

两种"解决方案"对我来说似乎都是荒谬的.我的项目不需要JavaSE-1.7.它在JavaSE-1.6上运行得非常好.要求捆绑包的所有用户至少拥有Java 7,只是因为开发人员使用的是Java 7并且不喜欢这个警告,这似乎与我想要的相反.另一方面,要求我作为开发人员安装所有Java版本,并将其列为我工作的项目所需的执行环境,这似乎几乎是荒谬的.所有这些项目在Java 7上运行得非常好,为什么我需要有很多这样的项目呢?

难道我完全失去了一些东西(在这种情况下,我没有 唯一的 一个),或者是这个警告非常愚蠢的,因为它是积极推动开发商为他们的项目设置了更高的要求执行环境,将严格要求?任何见解(并希望第三种摆脱这种警告的方式)将不胜感激.

java eclipse osgi maven

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

ES2015 `require()()` 的 `import` 替代方案?

一些 Node JS 库(例如debug)在 require 语句中使用这种模式:

var debug = require('debug')('http');
Run Code Online (Sandbox Code Playgroud)

这基本上是一个函数的需求,然后直接调用该函数。

我的问题:是否有使用 ES2015import语句的类似结构?

如果您从 commonjs 转换为 es2015 语法,您将如何翻译此类代码?

javascript commonjs ecmascript-6

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