2012-01-06 27 views
-1

Im新的Jquery,但事实证明我在我的最后一个应用程序中使用了它。我现在的问题是,它每载入一次我的页面都会重新加载/重新加载。有没有一种有效的方式来引用它,就像我们做一个CSS或JavaScript文件?例如:在应用程序中为所有jquery设置源

<script type="text/javascript" language="javascript" src="js/behavior.js"></script> 

我真的很想能够用jquery做这件事......因为当你看源代码时,它非常混乱。为了避免混淆:我已经加载了jquery。例如...这已经在我的html中:

<script src="js/jquery.min.js" type="text/javascript"></script> 

什么我试图缓存是我关闭JQuery的所有代码。例如:

$('#needDelete').slideDown('slow'); 

我有一堆这些需要放入文件,如果这是可能的!谢谢!

+2

当然你可以把你的代码放在一个文件中并加载它。和你使用jQuery一样。 – 2012-01-06 23:49:09

+0

我试过打开一个名为custom.js的文件。我把所有的jQuery代码都放到它里面,然后引用它。没有工作。参考页面本身是否需要额外的东西? – user791187 2012-01-06 23:53:46

+1

不,但也许你在jQuery之前加入了它?或者你在错误的时间加载代码。如果我们甚至不知道你做了什么,我们无法真正帮助你。像一个活页面不会是错的。 – 2012-01-06 23:56:51

回答

1

是的,当然是您可以将您的JavaScript代码保存在单独的文件(不管是否基于jQuery)。只要保持你的代码分离,并把它例如。在main.js文件,然后把标签jQuery脚本标签后:

<script src="js/jquery.min.js" type="text/javascript"></script> 
<script src="js/main.js" type="text/javascript"></script> 

只是为了一致性和改进可维护性,这是比较容易,如果所有的代码是在一个地方时比通常在HTML中引用这样的:

<a href="#" title="" onclick="$('#popup').show();return false;" id="a1">show popup</a> 

而不是上面,你可以在一个单独的JS文件做到这一点:

$('#a1').click(function(event){ 
    event.preventDefault(); 
    $('#popup').show(); 
}): 

(当然上面的代码应当在封闭或ondomready处理程序,所以对于元素的代码的搜索后,他们成为访问 - jQuery中的情况和ondomready你可以简单地使用:jQuery(function(){/* your code executed when DOM is ready */});

+0

你称之为“一致性和改进的可维护性”实际上是在jQuery的僵化的选择器之上增加了另一层不确定性和不兼容性 - 基于“Unobtrusive JavaScript”方法。自十多年以来,事件处理程序属性一直运行并且符合标准。 – PointedEars 2012-01-07 18:09:55

+0

@PointedEars:我相信你的评论是无构造的和主观的 - 实际上是关于jQuery本身。在我看来,如果您必须编写需要维护的JavaScript,并且您的应用程序由多个视图组成,那么使用多个JS文件维护此代码会更容易,而不是在视图内编写内联JavaScript。如果遇到问题,必须检查数百个HTML部分,这比检查相对干净的JS文件要繁琐得多。 – Tadeck 2012-01-07 18:14:14

+0

我认为你对jQuery也有偏见。你会牺牲更多的兼容性,可能更容易维护? – PointedEars 2012-01-07 18:21:53

3

jQuery是一个JavaScript库。它由一个JavaScript文件组成。它的所有文档都说使用<script src="..."加载它。响应

更新编辑:

中的JavaScript编写调用jQuery函数仍然是JavaScript的,可以从外部文件中,就像任何其他JavaScript引用。

0

下载jQuery和引用它是这样的:

<script src='jquery.js'></script> 

或为一个更好的选择,你可以使用google's cdn。这意味着,如果用户访问您的网站,并且已经访问过使用cdn的网站,它将已经有jQuery缓存。

<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script> 

和最好的选择,以防止对CDN的停机时间的可能性,结合本地副本和CDN这样的:

<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script> 
<script> 
if(!window.jQuery){ 
    script = document.createElement('script'); 
    script.src='js/jquery.js'; 
    document.head.appendChild(script) 
} 
</script> 
+0

我相信你的代码应该使用'||'而不是'&&'或者只检查'window.jQuery',因为jQuery可以简单地通过引用'jQuery'来使用,'$'可能无法访问或覆盖(参见[ 'jQuery.noConflict()'](http://api.jquery.com/jQuery.noConflict/))。 – zizozu 2012-01-07 18:09:46

+0

thx,现在编辑。 – bigblind 2012-01-08 12:46:24

0

我会从CDN参考jQuery的。这将允许浏览器与我的域中的其他资源一起进行并行下载,从而节省一些加载时间。

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 

cdn版本通常会缓存在浏览器中。

+0

我编辑了这个问题:它不是jquery我试图引用...它的代码由jQuery构建 – user791187 2012-01-06 23:49:52

0

我不明白这个问题。你想要什么?

我试过打开一个名为custom.js的文件。我将所有的jQuery 代码都放入它,然后引用它。没有工作。是否需要 是参考页面本身的附加内容?

你为什么要那样做?您可以通过减少不同文件的数量来节省一些负载,但是一个和两个文件之间的差异很小。

相反,请按Frederik Creemers的提示操作。在googleapis.com上加入jQuery-library。该文件被缓存,这意味着它不会加载用户访问您的页面的每一次。只有当缓存过期(不是100%确定这是多久)。另外,这个图书馆也被许多其他网站使用,所以你可能很幸运,并且用户将它下载到别的地方,并且在去你的页面时可以使用它。

同样,你所问的(如果我理解正确的话)是没有意义的。

相关问题