{"id":19490891,"url":"https://github.com/pandao/feloader","last_synced_at":"2026-06-11T16:31:28.570Z","repository":{"id":23921297,"uuid":"27301858","full_name":"pandao/feloader","owner":"pandao","description":"a simple front-end file/Resources (queue) loader","archived":false,"fork":false,"pushed_at":"2014-12-03T16:14:01.000Z","size":2548,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-01T08:16:22.095Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pandao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-29T12:46:20.000Z","updated_at":"2023-09-08T16:52:31.000Z","dependencies_parsed_at":"2022-07-20T23:33:00.119Z","dependency_job_id":null,"html_url":"https://github.com/pandao/feloader","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/pandao/feloader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandao%2Ffeloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandao%2Ffeloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandao%2Ffeloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandao%2Ffeloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pandao","download_url":"https://codeload.github.com/pandao/feloader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pandao%2Ffeloader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34208762,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T21:14:41.922Z","updated_at":"2026-06-11T16:31:28.538Z","avatar_url":"https://github.com/pandao.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"#FeLoader \n\nA simple front-end file/Resources (queue) loader.\n\n一个简单的前端资源队列加载工具，支持JS、CSS和图片的动态加载。\n\n适用于简单的无需严格模块化和需要使用变量上下文环境的应用场景。\n\n####兼容情况\n\n- IE6+\r\n- Webkit：Chrome/Safari/Opera\r\n- Firefox\r\n\r\n####安装方法\r\n\r\n\t\u003cscript type=\"text/javascript\" src=\"dist/feloader.min.js\"\u003e\u003c/script\u003e\r\n\r\n通过bower安装：\r\n\r\n\tbower install feloader\r\n\r\n####使用方法\r\n\r\n参数说明：\r\n\r\n\t{\r\n\t\turl      : String       路径或者网址,\r\n\t\twait     : Boolean      是否暂停/等待，默认为false，等待callback回调函数的执行完成，再进入下一个加载,\r\n\t\tbefore   : Function     加载前的处理，例如加载图片的loading,\r\n\t\tcallback : Function     加载后的回调函数，必须return true，这样队列才能继续下一个加载；\r\n\t\t\t\t\t\t\t\t另外在回调里嵌套另一个队列是同步的，这样就不能保持是顺序的加载了，\r\n\t\tappendTo : HTMLElement  追加到某个元素里，值为元素对象，默认值为'body'，加载脚本和CSS时只能是'body'或者'head',\r\n\t\twidth    : Number/%/px  加载图片时才有效,\r\n\t\theight   : Number/%/px  同上\r\n\t}\r\n\r\n1、队列加载\r\n\r\n\t\r\n\t\u003cscript type=\"text/javascript\" src=\"dist/feloader.min.js\"\u003e\u003c/script\u003e\r\n\t\u003cscript type=\"text/javascript\"\u003e \r\n\t\tfeloader.queue([\r\n\t\t\t{url : \"js/config.js\"},\r\n\t\t\t{url : \"js/underscore.js\"}, \r\n\t\t\t{\r\n\t\t\t\twait : true,\r\n\t\t\t\turl : \"js/jquery.min.js\", \r\n\t\t\t\tcallback : function() { \r\n\t\t\t\t\tconsole.log(\"jquery loaded!\");  \r\n\t\t\t\t\t//执行某些操作后，再进入下一个加载\r\n\t\t\t\t\tfor (var i=0; i\u003c10000; i++) {\r\n\t\t\t\t\t\tif(i \u003e= 9999) {\r\n\t\t\t\t\t\t\tconsole.log(i);\r\n\t\t\t\t\t\t\treturn true; \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\turl : 'js/functions.js'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\turl : 'css/style.css'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\turl : 'css/theme.green.css'\r\n\t\t\t},\r\n\t\t\t/*{\r\n\t\t\t\turl : 'css/cc.css'  //一旦队列中有加载不了的文件，则整个队列都会中止\r\n\t\t\t},*/\r\n\t\t\t{\r\n\t\t\t\turl : 'images/test.jpg',\r\n\t\t\t\tappendTo : 'body'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\turl : 'images/test.png' \r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\turl : 'images/test.gif' \r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\turl : 'images/test.webp',\r\n\t\t\t\tbefore : function(queue) {\r\n\t\t\t\t\tqueue.appendTo.innerHTML = \"图片加载中....\";\r\n\t\t\t\t},\r\n\t\t\t\tappendTo : document.getElementById(\"test\")\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\turl : 'images/test.jpeg',\r\n\t\t\t\tappendTo : 'body'\r\n\t\t\t}\r\n\t\t]); \r\n\t\u003c/script\u003e \r\n\r\n\u003e 说明1：队列可以嵌套，但无法继续嵌套外的队列（因为不能保证队列的加载顺利），所以建议安排在依赖关系的最后进行另一个队列。\r\n\u003e \r\n\u003e 说明2：队列中如果有重复的JS或CSS文件，只加载第一个，其他的直接跳过。 \r\n\r\n2、单个加载:\r\n\r\n\tfeloader.loadCSS({\r\n\t\turl : 'css/style'  //这里可以省略扩展名\r\n\t}); \r\n\r\n\tfeloader.loadScript({\r\n\t\turl : 'js/config'\r\n\t});\r\n\r\n\tfeloader.loadImage({\r\n\t\turl : 'images/test.jpg'\r\n\t\tappendTo: document.body,\r\n\t\twidth: 100,\r\n\t\theight: 100\r\n\t});\r\n\r\n\t// 链式调用\r\n\tfeloader.loadCSS({\r\n\t\turl : 'css/theme.green'\r\n\t}).loadScript({\r\n\t\turl : 'js/underscore'\r\n\t}).loadImage({\r\n\t\turl : 'images/test.png'\r\n\t});\r\n\r\n\u003e 说明：非队列加载不能保证加载顺序；\r\n\r\n3、在Sea.js中使用：\r\n\r\n\t\u003cscript src=\"js/sea.js\"\u003e\u003c/script\u003e\r\n\t\u003cscript type=\"text/javascript\"\u003e\r\n\t\tseajs.config({ \r\n\t\t\talias : {\r\n\t\t\t\t'feloader' : '../../dist/feloader.min'\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tseajs.use(\"./js/main\"); \r\n\t\u003c/script\u003e\r\n\r\n\t//main.js\r\n\tdefine(function(require){\r\n\t\tvar feloader = require('feloader'); \r\n\t\r\n\t\tfeloader.loadCSS({\r\n\t\t\turl : 'css/basic'\r\n\t\t}).loadScript({\r\n\t\t\turl : 'js/config'\r\n\t\t}).loadImage({\r\n\t\t\turl : 'images/test.png', \r\n\t\t\tbefore : function(queue) {\r\n\t\t\t\tqueue.appendTo.innerHTML = \"图片加载中....\";\r\n\t\t\t},\r\n\t\t\tappendTo : document.getElementById(\"test\")\r\n\t\t});\r\n\r\n\t\t// 队列，略\r\n\t\r\n\t\tconsole.log(feloader);\r\n\t});\r\n\t\r\n4、在Require.js中使用：\r\n\r\n\t\u003cscript src=\"js/require-2.1.15.min.js\"\u003e\u003c/script\u003e\r\n\t\u003cscript type=\"text/javascript\"\u003e 　　\r\n\t\trequire.config({\r\n\t　　　　paths: {\r\n\t　　　　　　\"feloader\": \"../dist/feloader.min\"\r\n\t　　　　}\r\n\t　　});\r\n\r\n\t　　require(['feloader'], function (feloader){\r\n\r\n\t\t\tfeloader.loadCSS({\r\n\t\t\t\turl : 'css/style'\r\n\t\t\t}); \r\n\r\n\t\t\tfeloader.loadScript({\r\n\t\t\t\turl : 'js/config'\r\n\t\t\t});\r\n\r\n\t\t\tfeloader.loadImage({\r\n\t\t\t\turl : 'images/test.jpg',\r\n\t\t\t\tappendTo: document.body,\r\n\t\t\t\twidth: 100,\r\n\t\t\t\theight: 100\r\n\t\t\t});\r\n\r\n\t\t\t// 链式调用\r\n\t\t\tfeloader.loadCSS({\r\n\t\t\t\turl : 'css/theme.green'\r\n\t\t\t}).loadScript({\r\n\t\t\t\turl : 'js/underscore'\r\n\t\t\t}).loadImage({\r\n\t\t\t\turl : 'images/test.png'\r\n\t\t\t});\r\n\t　　});\r\n\t\u003c/script\u003e\r\n\r\n####License\r\n\r\nThe MIT License ([MIT](https://raw.githubusercontent.com/pandao/feloader/master/LICENSE \"MIT\"))\r\n\r\nCopyright (c) 2014 Pandao","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpandao%2Ffeloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpandao%2Ffeloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpandao%2Ffeloader/lists"}