小编Neo*_*Neo的帖子

我的HTML5应用程序缓存清单正在缓存所有内容

更新:

**当这个功能真的很新时我发布了这个问题,我现在意识到这个功能不应该以这种方式使用,除非它是通过JavaScript使用的.但对于大多数犯错误和滥用此功能的初学者而言,这种黑客攻击似乎是一个很好的解决方案.如果你想要缓存除HTML以外的所有内容,这应该用JS完成,或者你可以使用下面的解决方案**

我想我的问题归结为:如果使用HTML标记的manifest属性引用清单的文件属于MASTER CACHE ENTRIES,那么如何使用清单来动态页面.

我的文件看起来像这样:

CACHE MANIFEST

CACHE:
# IMAGES:
/stylesheets/bg.jpg
/stylesheets/cont_bg.png
#and so forth.. 

#EXTERNAL
http://chat.mydomain.com/themes/images/panel_bg.png
http://chat.mydomain.com/themes/images/images_core.png

####################################
#STYLE SHEETS:
/stylesheets/min.css
/stylesheets/css_night.aspx

#####################################
#JAVASCRIPT:
/JAVASCRIPT/header_javascript.js

#EXTERNAL:
http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js
http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js

FALLBACK:
/ /offline.php

NETWORK:
*
Run Code Online (Sandbox Code Playgroud)

现在的问题是,一旦我浏览不在清单中的页面,我的实际动态php文件,如index.php,当我第一次看到页面时,没有缓存chrome就是:

Adding master entry to Application Cache with manifest http://208.109.248.197/manifest.appcache

Application Cache Downloading event
Application Cache Progress event (0 of 28) 
...
Application Cache Progress event (28 of 28) 
Application Cache NoUpdate event
Run Code Online (Sandbox Code Playgroud)

到目前为止,在我实际加载页面之前一直很好,并且chrome会:

Application Cache UpdateReady event
Adding master entry to Application Cache with …
Run Code Online (Sandbox Code Playgroud)

manifest manifest.cache cache-manifest html5-appcache

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

为什么要使用外部JavaScript?

什么是使用外部JavaScript文件的优点?我只是无法弄明白,我看到大型网站几次使用它们而不是服务器端包含.它只是用于缓存吗?

如果这是一个干净的代码和关注点的问题,那么你仍然可以将它从服务器端包含到html中.例如,我使用SMARTY,我可以将文件包含{include file='javascript.js}<script></script>tages中.如果它是为了性能,除了额外的http请求之外我什么都看不到,这会使外部文件变慢.我相信我一定会遗漏一些东西,因为所有大型网站仍然会这样做.

是因为缓存文件吗?我的javascripts是动态的,不管怎么说都不应该缓存.

有人可以帮助我做出正确的决定,选择如何处理我的JavaScript文件.

ps:一个1.5K的用户可以为external-javascript创建一个标签吗?

javascript

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

如何将函数绑定到DOM事件一次且仅一次,以便它们在触发事件时不会再次执行?

所以我有锚标签的形式,<a href='[link'] rel='Tab'>并在页面加载时应用以下内容:('文件准备'我的意思是)

jQuery("a[rel*=Tab]").click(function(e) {
                e.preventDefault();//then I do some stuff to open it in jq ui tab}
Run Code Online (Sandbox Code Playgroud)

现在的问题是,当我这样做,之后通过javascript生成新的链接,在我的情况下加载第二页与JqGrid有新<a rel='neoTab'>的,当我第一次运行时不存在, jQuery("a[rel*=Tab]").click(function(e)所以他们将无法工作...所以我可以jQuery("a[rel*=Tab]").click(function(e)在每个创建新链接的事件上运行 但是旧的链接会加载多个标签,那么有没有办法可以选择a[rel*=Tab]以前没有选择的所有" ?"

注意:我可以并且已经通过算法方法解决了这个问题,因为您可以通过下面的详细信息看到,我只是认为有一些我不知道的语法可以防止使用这个hack!

不必要的细节:

var neoTabitStat = 0;
var openTabs = new Array();
openTabs[0] = 'inbox';
if(!(currentBox=='inbox'||currentBox=='outbox') ) {var currentBox = 'inbox';}

function initNeoTab(a){
    if(neoTabitStat==0) {
        jQuery("a[rel*="+a+"]").click(function(e) {
            e.preventDefault();
            tabIt(jQuery(this).attr('href')+'&nohead=1',jQuery(this).attr('title'),jQuery(this).attr('data-hovercard'));
        });
    neoTabitStat++;
    }
}

function tabIt(a,b,c) {
    c = typeof(c) != 'undefined' ? c : 0;
    lastOpen = openTabs.length;
    if(lastOpen<6) …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-ui jqgrid

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

如何用MySQL的Haversine公式测量距离?

我从谷歌地图反向地理编码API获得纬度和经度,然后我需要这样的东西:

mysql_query("SELECT users.*, ".mysql_distance_column($lat,$lng)." FROM users ORDER BY DISTANCE";

function mysql_distance_column($lat=40 , $lng=-73) {

   $defaultLatitudeColumn = 'user_lat'; 
   $defaultLongitudeColumn='user_lng';
   $defaultColumnName='user_distance';
    return  "(( 
(3956 * 2 * ASIN(SQRT( POWER(SIN(({$lat} - abs({$defaultLatitudeColumn})) 
* pi()/180 / 2), 2) + COS({$lat} * pi()/180 ) 
* COS(abs({$defaultLatitudeColumn}) * pi()/180) 
* POWER(SIN(({$lng} - {$defaultLongitudeColumn}) * pi()/180 / 2), 2) ))
 )) ) as {$defaultColumnName} ";

}
Run Code Online (Sandbox Code Playgroud)

更新 我不能这样工作

delimiter //
CREATE FUNCTION `GeoDistMiles`( lat1 FLOAT (10,6), lon1 FLOAT (10,6), lat2 FLOAT (10,6), lon2 FLOAT (10,6) ) 
RETURNS …
Run Code Online (Sandbox Code Playgroud)

mysql sql geometry distance haversine

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

从 VPC 外部访问 AWS RDS,无需公共访问

我在 Amazon RDS 上有一个 MySQL 数据库。当我创建此数据库时,我取消选择“公共访问”选项,该选项在创建数据库后无法更改。这意味着我的数据库实例只能从 VPC 内部访问。

所以现在我想访问本地计算机中的数据库,通过使用我在网络内可以访问数据库的 EC2 VPS 设置 MySQL 主机。我希望该服务器充当我的 MySQL 服务器,以便我可以在本地访问它。

mysql amazon-ec2 vpc rds amazon-web-services

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

JQuery和YUI?可能原型?

在过去的几年里,我一直忙于服务器端编程,我有点忽略了这些JavaScript库.由于我对JavaScript的丰富知识和长期经验,我总是从头开始编写所有内容.即使在那时它似乎很愚蠢,但我想这更像是挑战和学生的心态.最近我开始使用YUI,Javascript和Prototype,我很容易做我想要的但是我没有花足够的时间在它上面,我不确定应该坚持什么.我计划在一个有100个在线用户的网站上使用这些.因此,两个问题是高效的AJAX以及客户端加载时间.我计划使用JQuery和YUI的组合.从雅虎加载Yahoo UI,后者从谷歌加载.然而,在我看来,这是不必要的,我将来可能会后悔.我想得到一些意见!我确实环顾四周并阅读了其他帖子,但大多数人似乎都有情绪问题,而不是技术问题.

javascript jquery yui prototypejs

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

在 Jquery Plguin、JQGrid 中更改 AJAX url?

我正在为 jquery 和 jquery ui 使用 jqgrid 插件,我想更改 dom 事件上的 AJAX url。这是 jqgrid 表的实例:

jQuery("#list").jqGrid({
    url:'AJAX/JSON/json_member_mail.aspx',
    datatype: 'json',
    mtype: 'GET',
    colNames:['','Title', 'from','message',''], 
colModel :[ 
      {name:'checkbox', index:'pms.pm_id', width:15, gridstate:'hidden',sortable:false} ,
      {name:'title', index:'pmthreads.pmthread_subject', width:140}, 
      {name:'from', index:'pms.pm_authoruser_id', width:110, align:'center',classes:'mofo_id' } ,
      {name:'message', index:'message', width:445, sortable:false},
      {name:'tasks', index:'tasks', sortable:false, width:65, align:'right'} 
    ],
    pager: '#pager',
    rowNum:20,
    rowList:[10,20,30],
    width: '100%',
    height: '800',
    sortable:true,
    sortname: 'someting that makes sense to the cragted mysql query ',
    sortorder: 'desc',
    viewrecords: true,
    caption: 'Mail'
  });
Run Code Online (Sandbox Code Playgroud)

现在此页面在我的程序中显示用户邮件收件箱...现在我想将 url 更改为 member_mail_sent 以显示发件箱,但随后我还需要更改 …

ajax jquery jquery-ui jqgrid jqgrid-php

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

非常不寻常的PHP行为

对于下面的代码,我得到一个打印任务的页面,然后退出,即使任务的值为零.

$task = (isset($_POST['task']))?$_POST['task'] :(isset($_GET['task']))?$_GET['task']:0; 
if($task == "delete") {
    echo $task;
    exit(); 
}
Run Code Online (Sandbox Code Playgroud)

输出:

0
Run Code Online (Sandbox Code Playgroud)

但是,如果我将第一行更改为:

$task = (isset($_POST['task'])) ? $_POST['task'] :(isset($_GET['task'])) ? $_GET['task'] : NULL;    
Run Code Online (Sandbox Code Playgroud)

它会正常工作,那么为什么字符串'delete'的值等于0?

php loose-typing

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