小编M S*_*ach的帖子

优化jQuery选择器的最佳方法是什么?

我在JSP中多次使用这个jQuery选择器:

 $("#customers tbody tr td input[type='checkbox'][name='selectedCustomers']")
Run Code Online (Sandbox Code Playgroud)

我在一些博客上找到的解决方案是我应该先做:

var customer=$('#customers')
Run Code Online (Sandbox Code Playgroud)

然后使用上述客户对象进行进一步调用.

 customer.find("tbody tr td input[type='checkbox'][name='selectedCustomers']")
Run Code Online (Sandbox Code Playgroud)

我的问题是,这个解决方案会有所不同吗?为什么?

我的理解

当我做

$("#customers tbody tr td input[type='checkbox'][name='selectedCustomers']")
Run Code Online (Sandbox Code Playgroud)

jQuery内部将首先获取与div id="customers" (通过document.getElementById("customers"))关联的对象,然后将遍历指定的 checkbox.如果我按照建议的解决方案,那么document.getElementById("customers")只会被解雇一次,其余的将是相同的.因此,我将自己从不必要的倍数中拯救出来,document.getElementById但其余的将是相同的.我的理解是否正确?如果是,仅仅是为了我的知识,是document.getElementById一个更昂贵的操作?

编辑:-

我不是只使用上述选择器多次,而是在div id ="customer"下使用其他可能的选择器.因此,如果我首先缓存客户对象并且如果我不这样做,那么问题是性能方面的差异是什么?

html javascript jquery jquery-selectors

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

标记界面的目的是什么?

可能重复:
标记界面标记界面
的用途是什么?

我知道什么是标记接口 - 没有方法的接口.示例:可序列化,远程,可克隆.

我想知道标记接口的目的是什么.这是我的理解: -

基本上它只是从普通对象中识别特殊对象.与序列化的情况一样,需要序列化的对象必须实现可序列化的接口,并且如果它是可序列化的实例,则必须在某处检查writeObject()方法.据我所知,这是使用接口serializable(标记接口)的writeObject的唯一目的.对?或者jvm在可序列化接口的基础上提供了一些额外的功能?

类似的逻辑适用于可克隆接口.

现在让我们看看它是如何有用的.

让我们在应用程序中说我们有1000个值对象.我们只想序列化100个特定对象.现在JDK已经说过程序员角色只是用标记接口将对象标记为特殊的,在这种情况下是可序列化的接口.现在JDK会处理哪个对象要序列化?

是的,我们可以通过某种博尔干国旗实现这种行为.但这将是一个糟糕的方法.

类似地,我们可以说在用户定义标记接口的情况下,我们可以借助标记接口来区分特殊对象.就像我们可以使用运算符实例来确定它是否是该特定接口的实例.如果是,则在不抛出一些异常的情况下继续.

如果以上理解正确,请告诉我们?

java interface

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

什么是Hibernate中的persist()和save()之间的区别?

通过文档我可以发现只有一个区别是save方法生成返回对象作为生成的标识符但是persist没有.这是提供持久化方法的唯一目的.如果它是如何帮助程序员因为即使他不打算要使用生成的标识符,他可以使用save并忽略返回值.

还通过这个帖子来了解 Hibernate中persist()vs save()的优点是什么?.我可以从这个线程获得的有意义的语句是persist()还保证如果在事务边界之外调用它不会执行INSERT语句,保存方法但不确定我应该如何在我的程序中尝试它以便我可以得到实际的差异?

hibernate

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

PointToPoint与JMS中的发布/订阅模型?

我是JMS的新手.我已经开始使用hello world,我将从主题上的java应用程序发布消息并从客户端(node.js javascript)监听它.我已经通过http://en.wikipedia.org/wiki/Java_Message_Service.现在我有一些疑问,基于我的先前理论理解和上面链接建议的内容?

根据我的理解,点对点是队列实现,其中最多只有一个消费者在队列上订阅并且只能被消费者使用.生产者和消费者都不知道彼此.在我的案例Apache主动MQ中,Queue托管在消息代理上.生成器可以在发布消息之前创建队列(或者可以事先从控制台创建).

在发布/订阅模型的情况下,它几乎与PointToPoint相同,除了我们使用Topic而不是queue的事实.在这个模型中,Topic上可以有更多的消费者.消息发布后,将通知所有订阅者.现在,如果任何订户发送已发布消息的确认消息,消息将被视为已消耗,并且新用户将无法再使用该消息?

java jms mom publish-subscribe

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

Date vs TimeStamp vs calendar?

我有时会对java中不同的Date类型及其实际用法感到困惑.在这里,我想总结一下我的理解

java.sql.Date :- 一个围绕毫秒值的瘦包装器,允许JDBC将其标识为SQL DATE值

java.sql.Timestamp :-java.util.Date的瘦包装器,允许JDBC API将其标识为SQL TIMESTAMP值.它增加了保持SQL TIMESTAMP小数秒值的功能,允许将小数秒的指定精度设置为纳秒

我见过大多数项目更喜欢Timestamp而不是date.我认为这样做的主要原因是Timestamp可以保持值达到纳秒精度,而数据可以保持到毫秒.正确?

Calendar :- 此类专为日期操作而设计,例如: - 用于在特定时刻和一组日历字段(如YEAR,MONTH,DAY_OF_MONTH,HOUR等)之间进行转换,以及用于操作日历字段,例如获取下周的日期.虽然我不知道为什么这个类是抽象的,只有一个实现存在,即GregorianCalendar.

java date

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

获取异常java.security.InvalidKeyException:无效的AES密钥长度:29个字节?

当在程序下面运行时,我得到了这个例外.无法弄清楚AES的问题是什么允许128 -256位密钥?

 Exception in thread "main" java.security.InvalidKeyException: Invalid AES key length: 29 bytes
at com.sun.crypto.provider.AESCipher.engineGetKeySize(DashoA13*..)
at javax.crypto.Cipher.b(DashoA13*..)
Run Code Online (Sandbox Code Playgroud)

在第20行获得例外

这是程序

 import java.security.Key;

 import javax.crypto.Cipher;
 import javax.crypto.spec.SecretKeySpec;

 import sun.misc.BASE64Decoder;
 import sun.misc.BASE64Encoder;

 public class AESEncryptionDecryptionTest {

   private static final String ALGORITHM       = "AES";
   private static final String myEncryptionKey = "ThisIsSecurityKey";
   private static final String UNICODE_FORMAT  = "UTF8";

   public static String encrypt(String valueToEnc) throws Exception {
 Key key = generateKey();
 Cipher c = Cipher.getInstance(ALGORITHM);
 c.init(Cipher.ENCRYPT_MODE, key);  //////////LINE 20
 byte[] encValue = c.doFinal(valueToEnc.getBytes());
 String encryptedValue …
Run Code Online (Sandbox Code Playgroud)

java encryption aes

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

Hibernate命名查询是否是真正意义上的预编译?

预编译的查询由DB供应商(如oracle,sql server等)预先编译和缓存,以便它们可以更快地进行连续调用,如预处理语句.

在Hibernate命名查询据说是在Web服务器启动时预编译的.这是否意味着所有查询都在服务器启动时触发,以便它们可以由DB供应商预编译或预编译在hibernate上下文中具有不同的含义?

java hibernate jpa named-query precompile

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

Spring方面如何在内部工作?

Say Service调用需要应用日志方面(注释)的Dao类.我想知道方面实际上是如何应用的.

根据我在服务对象下注入DAO时的理解,spring发现有一些方面(在这种情况下是日志记录)是为DAO配置的,因此它会注入代理对象而不是实际的目标对象.现在,当对DAO中的任何方法进行实际调用时,代理应用方面,然后调用实际的目标对象.那是对的吗 ?另外我相信这叫做跑步编织.

另一方面,可以使用加载时间编织(使用javaagent配置)完成相同的操作,其中对需要应用方面的类执行字节代码操作.所以代理不会在这里出现.

如果我错了,请纠正我,因为这是所有弹簧模块的基础?

java spring aspectj spring-aop

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

Hibernate中session.lock方法的目的是什么?

我正在通过hibernate的锁定方法.我没有得到我们想要通过这种方法实现的目标.

 p1  = (Person)session. get(Person.class,1);// person name is scott here
// here peson name got update to henry by anothet thread
session. lock(person, LockMode.READ) line 3
// still name is henry too
Run Code Online (Sandbox Code Playgroud)

我尝试了上面的代码片段,但它没有从第3行的数据库中读取这个人.文档说这可能用于执行版本检查.

不确定它如何检查版本并在任何情况下帮助开发人员?

同样不确定session.lock(person, LockMode.None)会实现什么.文档说明LockMode.NONE用于简单地将瞬态实例与会话重新关联.

不确定通过将临时实例与会话重新关联是什么意思.一个简短的场景将是一个很大的帮助?

hibernate

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

方式(客户端或服务器端)去分页/排序列?

我在一个员工表中有3000条记录,我用一个查询从数据库中获取了这些记录.我每页可以显示20条记录.所以每页有150页,显示20条记录.关于分页和可排序列方法,我有两个问题:

1)如果我实现一个没有可排序列的简单分页,我应该将所有3000条记录发送到客户端并使用javascript或jquery进行分页客户端.因此,如果用户点击第二页,则呼叫将不会转到服务器端,而且速度会更快.虽然我不确定在浏览器/客户端发送3000条或更多条记录会产生什么影响?那么什么是最好的方法是将所有记录一次性发送到客户端并在那里进行排序或点击页面将调用发送到服务器端然后只返回特定的页面结果?

2)在这种情况下,我需要提供分页以及可排序的列(6列).所以这里用户可以点击任何列,如员工姓名或部门名称,然后名称应按升序或降序排列.我想再次了解时间响应/内存方面的最佳方法吗?

java pagination web-applications

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