前端八个常见错误

来源:互联网 发布:史丹利快报的淘宝店 编辑:程序博客网 时间:2024/04/18 20:55

第一,  文件无法上传。

下面上传文件的代码经常写过,但是点击提交之后,却发现没有上传文件:

         <formaction="xx.php" method="post">

                   <inputtype="file" name="test">

                   <inputtype="submit" value="提交" />

         </form>

究其原因,是form的enctype属性应该设置为:multipart/form-data

 

第二:把a标签设置为按钮之后,点击会刷新页面

在ide中敲入a,ide通过会自动补全代码,有时候会生成:

         <ahref="">按钮一</a>

我们是把这个a标签设置为按钮的,但是发现触发js代码之后,页面会刷新。

要解决这个问题,要么把href属性去掉,要么设置为#或者是javascript:void(0),比如href=”#”

 

第三:在元素还没有构建之前,就获取元素

在用jq的时候,有时候是直接是直接获取某个元素:

<scripttype="text/javascript">

                   varv=$('#test');

</script>

但在这之后,对v的操作都会出现异常。

这个是因为元素还没有构建好。要么是使用:

         <scripttype="text/javascript">

                   $(function(){

                            varv=$('#test');

                   })

         </script>

等文档完成解析之后,再获取元素。要么是在该元素之后,获取:

         <aid='test'>test</a>

         <scripttype="text/javascript">

                            varv=$('#test');

         </script>

 

第四:form不会提交

当form跟table接合在一起的时候:

<table>

<form>

         <tr>

                   <td><inputtype="text" name="test"></td>

         </tr>

</form>

</table>

会发现提交之后,name=’test’是没有这个的。通过调试会发现,form开始标签跟结束标签会挤在一起。

需要把form放在table之外,才不会有这个问题。

因此需要注意,不要把form放在table,tr之内,但是可以在td之内。

 

第五:网页乱码

当文件是以某种编码的方式保存,而浏览器使用另外一种编码解析的话,就会出现乱码的问题,要解决这个问题,就应该在网页中,明确给出这个文件是以什么编码保存的。

如:

<metahttp-equiv="Content-type" content="text/html;charset=UTF-8"/>

 

第六:文档模式

文档模式常见有两种:过度、严格和框架

使用不同的DTD不会影响CSS,但是会影响布局。

原因是过渡比严格多了一些布局相关的元素(center等等)和一些属性(align等等)。

而这些,都是会影响布局的。因此使用不同的文档模式,会看起来不同。

 

 

第七:setTimeout不会工作了

如下代码:

         <scripttype="text/javascript">

 

                            functionhaha(){

                                     functiontest(){

                                               alert(123);

                                     }

                                     setTimeout('test()',100);

                            }

                            haha();

 

         </script>

这是setTimeout并不会起作用,究其原因,就是setTimeout调用之后,并不会立即执行。而在js中,函数也是变量,在函数内定义函数,等于这个函数是局部函数。因此,在setTimeout中,调用的函数,必须是全局函数。

 

第八:一张大图,分成多张小图,速度会变快

盲目相信某些作者的信条是错的。网页整体速度往往(这里说往往,不是说绝对)浪费在来回传输的过程之中,而分成多张小图,会大大增加来回传输的时间,因此速度反而比传一张大图来得慢,即使是长链接。

现在很多网站,都使用精灵图,来把多张小图合成一张大图,减少来回传输的次数,从而减少整体的传输时间。

 

 

0 0
原创粉丝点击