{"id":20433946,"url":"https://github.com/cable8mm/jquery-infinite-with-template","last_synced_at":"2026-05-28T20:31:04.131Z","repository":{"id":117168735,"uuid":"329335751","full_name":"cable8mm/jquery-infinite-with-template","owner":"cable8mm","description":"infiniteScrollWithTemplate - JQuery plugin for ajax-enabled infinite page scroll / auto paging with template","archived":false,"fork":false,"pushed_at":"2024-02-02T09:26:07.000Z","size":38,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-21T11:55:27.165Z","etag":null,"topics":["infinite-scroll","javascript","jquery-ajax","jquery-plugin"],"latest_commit_sha":null,"homepage":"","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/cable8mm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-13T14:37:39.000Z","updated_at":"2024-03-11T04:09:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"9ef009a1-8644-454e-9793-5e06d3c95943","html_url":"https://github.com/cable8mm/jquery-infinite-with-template","commit_stats":{"total_commits":10,"total_committers":1,"mean_commits":10.0,"dds":0.0,"last_synced_commit":"07080628001058ace72160dee5901c2fcd679ad5"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/cable8mm/jquery-infinite-with-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cable8mm%2Fjquery-infinite-with-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cable8mm%2Fjquery-infinite-with-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cable8mm%2Fjquery-infinite-with-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cable8mm%2Fjquery-infinite-with-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cable8mm","download_url":"https://codeload.github.com/cable8mm/jquery-infinite-with-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cable8mm%2Fjquery-infinite-with-template/sbom","scorecard":{"id":261390,"data":{"date":"2025-08-11","repo":{"name":"github.com/cable8mm/jquery-infinite-with-template","commit":"a9b0f46d080461b9f0b682a6221009d68ba58c81"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.5,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Code-Review","score":0,"reason":"Found 0/14 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: MIT License: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 4 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T10:55:09.961Z","repository_id":117168735,"created_at":"2025-08-17T10:55:09.961Z","updated_at":"2025-08-17T10:55:09.961Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33626136,"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-05-28T02:00:06.440Z","response_time":99,"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":["infinite-scroll","javascript","jquery-ajax","jquery-plugin"],"created_at":"2024-11-15T08:22:45.203Z","updated_at":"2026-05-28T20:31:04.100Z","avatar_url":"https://github.com/cable8mm.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jQuery Infinite With Template Plugin\n\n![NPM Version](https://img.shields.io/npm/v/%40cable8mm%2Fjquery-infinite-with-template)\n![npm bundle size](https://img.shields.io/bundlephobia/minzip/%40cable8mm%2Fjquery-infinite-with-template)\n![NPM Downloads](https://img.shields.io/npm/dt/%40cable8mm%2Fjquery-infinite-with-template)\n![jsDelivr hits (npm)](https://img.shields.io/jsdelivr/npm/hy/%40cable8mm%2Fjquery-infinite-with-template)\n![NPM Type Definitions](https://img.shields.io/npm/types/%40cable8mm%2Fjquery-infinite-with-template)\n![NPM License](https://img.shields.io/npm/l/%40cable8mm%2Fjquery-infinite-with-template)\n\n\nJQuery plugin for ajax-enabled infinite page scroll with template.\n\nIf you like jQuery until now, this little library will help.\n\n## Install\n\non npm\n\n```sh\nnpm i @cable8mm/jquery-infinite-with-template\n```\n\non html\n\n```html\n\u003cscript src=\"https://cdn.jsdelivr.net/npm/@cable8mm/jquery-infinite-with-template@1.0.4/jquery.infiniteScrollWithTemplate.min.js\" integrity=\"sha256-bX3iyCp0T50YmDRgpUl1tY/LGlpPGsKR4TqUkpcq6WA=\" crossorigin=\"anonymous\"\u003e\u003c/script\u003e\n```\n\non ESM\n\n```html\n\u003cscript type=\"module\"\u003e import @cable8mm/jquery-infinite-with-template from https://cdn.jsdelivr.net/npm/@cable8mm/jquery-infinite-with-template@1.0.4/+esm \u003c/script\u003e\n```\n\n## Demo\n\nFor convinient `http-server` need:\n\n```bash\ngit clone https://github.com/cable8mm/jquery-infinite-with-template\n\ncd jquery-infinite-with-template\n\nhttp-server .\n```\n\nand visit http://127.0.0.1:8080/examples/\n\nIf you are not installed `http-server`, refer to https://www.npmjs.com/package/http-server\n\nYou can regenerate data_sources:\n\n```bash\n# permission required\n./examples/generate \u003e data_sources.ajax\n```\n\n## Usage sample\n\nJavascript part:\n\n```Javascript\n$(\"#result\").infiniteTemplate({\n\ttemplateSelector: \"#test-tmpl\",\n\tdataPath: \"data_sources.ajax\",\n\tquery: \"word=ajax\",\n\ttemplateHelpers: {\n\t\tauthId : 354\n\t},\n    zeroCallback: function () {\n        alert(\"zero alert\");\n    },\n});\n```\n\nHTML part:\n\n```html\n\u003cdiv id=\"result\"\u003e\u003c/div\u003e\n\n\u003cscript id=\"test-tmpl\" type=\"text/x-jsrender\"\u003e\n\t\u003cp\u003e{{:id}}. {{:title}} [user:{{:authId}}]\u003c/p\u003e\n\u003c/script\u003e\n```\n\nAJAX part: `data_sources.ajax`. This should return Ajax:\n\n```javascript\n{\n\t\"data\": [\n\t{\n\t\t\"id\": 885,\n\t\t\"title\": \"iGFIJUSPp8oXoBDqoRXKK0VEAU0IBG(word=ajax)\"\n\t},\n\t{\n\t\t\"id\": 277,\n\t\t\"title\": \"HM3iPLDwd3nQKNH5eOkaOh5QlSb92F(word=ajax)\"\n\t},\n\t{\n\t\t\"id\": 583,\n\t\t\"title\": \"O2X0VQeWFGIRQPcVquYwHx49VNhwX3(word=ajax)\"\n\t},\n...even more rows\n}\n```\n\nResult:\n\n```html\n\u003cdiv id=\"result\"\u003e\n\t\u003cp\u003e885. iGFIJUSPp8oXoBDqoRXKK0VEAU0IBG(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e277. HM3iPLDwd3nQKNH5eOkaOh5QlSb92F(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e583. O2X0VQeWFGIRQPcVquYwHx49VNhwX3(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e179. vrEwi7hgVucCEDmuO7pOf4Gzk4gmyh(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e380. yviF2uDLyySLZaAPs3bKNbSZfHeQA7(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e329. 865t05x9DMngrETccBuqrY7ts9Xt3R(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e84. D6mhKuRA06ONCE5HbswSwPjZvp0bUh(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e528. saWL46OBtTDGIBuZL9TkmfBvPXiRqM(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e522. PBe0jjP1Egy6NWpHzuA86JHupxNGvc(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e115. vBmfL7osq2VAKIktVznrC6QZzYpc1H(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e722. mti7aMut4TxAygKAdfGylml9QgJoDN(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e401. 06kgapSQylxWJOvFmDNLIcvpSPMB7V(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e245. UD0TP3bMU7J4mAlGqwo52F1I0rJIyR(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e985. 3xSyr0m68K3Ec6y8vJgIhYgSfgcGnG(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e78. DWpWRzx1x4Ibfh1Gn0Lk0F3aufu34d(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e573. iINBTozeMIeZguTU6lLB9j76zNZ4AK(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e946. OEuUblddtI9vqlyL89nDXizhvryn4e(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e756. wsBL8dxDf6UjTiNWNnnX4XAlAonHBM(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e66. q3irGi5lNUXccTDTDfl2jRlzVp04uk(word=ajax) [user:354]\u003c/p\u003e\n\t\u003cp\u003e20. vcq8sKN4RhCEoFLVW2vbX2eR14EKp8(word=ajax) [user:354]\u003c/p\u003e\n\u003c/div\u003e\n```\n\n## Options\n\n**templateSelector** - (required) jsRender template identify\n\n**dataPath** - (required) URL to load more data via AJAX\n\n**templateHelpers** - (optional) Merge with json to load\n\n**key** - (optional) data(default)\n\n**query** - (optional) Additional query\n\n**method** - (optional) GET(default), POST, PUT, DELETE\n\n**loadAtStart** - (optional) true(default), false\n\n**loadSelector** - (optional) if it set, it load more data every time the selector clicked\n\n**initialPage** - (optional) 1(default)\n\n**preventCache** - (optional) false(default) if true, Add timestamp\n\n**zeroCallback** - (optional) null(default) if function, call zeroCallback when result is nothing\n\n## Examples\n\n```html\n// https://m.holapet.com/adoption\n\n\u003cx-adoption.rounded-card-list :selector=\"'adoption-rounded-card-list'\"\u003e\n    @foreach($adoptions as $item)\n    \u003cx-adoption.rounded-card :item=\"$item\" /\u003e\n    @endforeach\n\u003c/x-adoption.rounded-card-list\u003e\n\u003cx-adoption.rounded-card-tmpl /\u003e\n\u003cscript\u003e\n    $(\"#adoption-rounded-card-list\").infiniteTemplate({\n        templateSelector: \"#adoption-rounded-card-tmpl\",\n        dataPath: \"/api/adoption\",\n        initialPage: 3,\n    });\n\u003c/script\u003e\n```\n\n```html\n// https://m.holapet.com/place/pensions/region/1\n\n\u003cx-place.rounded-card-list :selector=\"'place-rounded-card-list'\"\u003e\n    @foreach($region-\u003eplacesRecent as $item)\n    \u003cx-place.rounded-card :item=\"$item\" /\u003e\n    @endforeach\n\u003c/x-place.rounded-card-list\u003e\n\u003cx-place.rounded-card-tmpl /\u003e\n\u003cscript\u003e\n    $(\"#place-rounded-card-list\").infiniteTemplate({\n        templateSelector: \"#place-rounded-card-tmpl\",\n        dataPath: \"/api/place/pensions/region/{{ $region-\u003eid }}\",\n        initialPage: 3,\n        templateHelpers: {\n            minColumnCount: 1\n        }\n    });\n\u003c/script\u003e\n```\n\n```html\n// https://m.holapet.com/search/show?word=%ED%8F%AC%EB%A9%94%EB%9D%BC%EB%8B%88%EC%95%88\n\n@include('shared.jtemplate.search-user')\n\n@auth\n\u003cscript\u003e\n    $(\"#user-list\").infiniteTemplate({\n        templateSelector: \"#user-tmpl\",\n        dataPath: \"/api/user\",\n        query: \"word={{ $word }}\",\n        templateHelpers: {\n            authId : {{ Auth::id() ?? 0 }},\n            followeeIds: {!! Auth::user()-\u003efollowee_ids-\u003etoJson() ?? 'false' !!}\n        }\n    });\n\u003c/script\u003e\n@endauth\n@guest\n\u003cscript\u003e\n    $(\"#user-list\").infiniteTemplate({\n        templateSelector: \"#user-tmpl\",\n        dataPath: \"/api/user\",\n        query: \"word={{ $word }}\",\n    });\n\u003c/script\u003e\n@endguest\n```\n\n```html\n// https://m.holapet.com/story/hot\n\n@if(!empty($hotStories))\n\u003cx-story.grid-card-list :selector=\"'story-grid-card-list'\"\u003e\n    @foreach($hotStories as $item)\n    \u003cx-story.grid-card :item=\"$item\" /\u003e\n    @endforeach\n\u003c/x-story.grid-card-list\u003e\n@endif\n\u003cx-story.grid-card-tmpl /\u003e\n\u003cscript\u003e\n    $(\"#story-grid-card-list\").infiniteTemplate({\n        templateSelector: \"#story-grid-card-tmpl\",\n        dataPath: \"/api/story/hot\",\n        initialPage: 3,\n    });\n\u003c/script\u003e\n```\n\nThe jQuery Infinite With Template Plugin project is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcable8mm%2Fjquery-infinite-with-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcable8mm%2Fjquery-infinite-with-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcable8mm%2Fjquery-infinite-with-template/lists"}